gcc编译链接时头文件和库文件的搜索顺序

编译:找符号定义

链接:找实现

运行:执行

 

静态库链接时直接写进程序里了

动态库链接时只链接到了一些地址信息,需要到运行时再进行动态加载

 

gcc从右往左找-L  从左往右找-I头文件

 

编译时搜索头文件的顺序:

1.  gcc先找-I设置的路径

2.  再找gcc的环境变量C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH设置的路径

3.  最后再找内定目录/usr/include /usr/local/include

 

链接时库文件的搜索顺序:

1.  gcc先找-L设置的路径

2.  再找环境变量LIBRATY_PATH设置的路径

3.  最后再找内定目录 /lib  /usr/lib  /usr/local/lib 

 

运行时动态库的搜索顺序:

1.  编译程序时直接指定动态库

2.  找环境变量LD_LIBRARY_PATH设置的路径

3.  找内定目录 /lib  /usr/lib

 

PATH环境变量指明用的一些命令去哪里找

 

 

有一篇更详细一点的博客:http://blog.21ic.com/user1/6203/archives/2010/67992.html

你可能感兴趣的:(gcc,include,path,library,2010,c)