linux中gcc库文件的相关问题

最近在ubuntu上使用线程出现了不少问题,也学习了不少东西。总结下


当我们在使用POSIX Thread的时候,只要在编译的时候加上-lpthread选项就可以了.这是因为POSIX Thread就在LIBRARY PATH中,但是我使用-lboost_system,不行。我想难道我的boost没有在LIBRARY_PATH中吗。我使用gcc --print-search-dir来查看发现/usr/local/lib还真不在LIBRARY_PATH下面。所以在/etc/profile中添加了LIBARAY_PATH环境变量加入了这个路径。




LIBRARY_PATH:   gcc build time environment parm. 就是gcc编译期的环境变量,指定库路径.
LD_LIBRARY_PATH: gcc runtime environment parm. gcc运行期的环境变量,.....
gcc在build time的时候是不会去搜索LD_LIBRARY_PATH的,所以找不到boost,可以通过-L来指定库的地址


gcc  -I(大写i) -L(大写l) -l(小写l)的区别
-I(大写i):指定头文件的搜索目录
-L(大写l):指定库文件的搜索目录
-l(小写l): 在上面的库文件目录中寻找动态库文件  -ltest 需要libtest.so动态库文件,如果加入了-static那么寻找libtest.a文件

你可能感兴趣的:(linux中gcc库文件的相关问题)