usr/include文件夹下有众多的头文件,编写c++时经常要include一些头文件,程序连接头文件时是不是在include文件夹的下面的所有文件中寻找
有没有人给我讲讲这些运行的机制
编译C++时include的那些头文件是由编译器决定路径及寻找顺序的,/usr/include这种肯定在编译器寻找的路径内。如果不在编译器指定路径内,则需要手动使用-I选项指定头文件路径
程序只是在编译时需要用到这些头文件,链接时直接链接dll,需要用-l选项指定需要链接哪些.so文件,指定链接文件名时省略前面的lib与后面的.so,比如链接libparted.so(这是一个与磁盘分区相关的共享库)应该写为 -lparted。
例子:
g++ test.cpp -I/home/ -ldl -o test
是指编译test.cpp源程序,这个源程序include进来的头文件可以先去/home/文件夹下查找,如果没有再去系统路径(就是你前面说的/usr/include这样的)下查找。链接阶段请链接上libdl.so这个共享库,最后生成的可执行文件叫test
如:
g++ -o a a.cpp -L/full-path-to-mysql/lib -I/full-path-to-mysql/include -lmysqlclient
请问:这里的-L/full-path-to-mysql/lib 中的L是什么意思?8 W/ O- Q* w! A$ b
还有I/ 的I是什么东东。* T! g3 g& L0 k4 h' u
是盘符吗?; ?" k$ Q3 G) o" w3 b8 Z
有没有必要修改/httpd.conf中的东西,修改什么地方?
L是库文件(lib)目录,I是头文件(include)目录。
有没有人给我讲讲这些运行的机制
编译C++时include的那些头文件是由编译器决定路径及寻找顺序的,/usr/include这种肯定在编译器寻找的路径内。如果不在编译器指定路径内,则需要手动使用-I选项指定头文件路径
程序只是在编译时需要用到这些头文件,链接时直接链接dll,需要用-l选项指定需要链接哪些.so文件,指定链接文件名时省略前面的lib与后面的.so,比如链接libparted.so(这是一个与磁盘分区相关的共享库)应该写为 -lparted。
例子:
g++ test.cpp -I/home/ -ldl -o test
是指编译test.cpp源程序,这个源程序include进来的头文件可以先去/home/文件夹下查找,如果没有再去系统路径(就是你前面说的/usr/include这样的)下查找。链接阶段请链接上libdl.so这个共享库,最后生成的可执行文件叫test
如:
g++ -o a a.cpp -L/full-path-to-mysql/lib -I/full-path-to-mysql/include -lmysqlclient
请问:这里的-L/full-path-to-mysql/lib 中的L是什么意思?8 W/ O- Q* w! A$ b
还有I/ 的I是什么东东。* T! g3 g& L0 k4 h' u
是盘符吗?; ?" k$ Q3 G) o" w3 b8 Z
有没有必要修改/httpd.conf中的东西,修改什么地方?
L是库文件(lib)目录,I是头文件(include)目录。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/3678/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2010-10-23 23:57
评论列表