生成静态库:ar cr libNAME.a x1.o x2.o ... 查看静态库中的文件:ar t libNAME.a gcc 相同文件类型时,不考虑顺序。不同文件类型时,要将调用者放在前面,定义者放在后面。 尽量将调用者放在前面,定义者放在后面 gcc -Wall xxx.c -lNAME -o xxx等价于 gcc -Wall xxx.c libNAME.a -o xxx gcc -Wall xxx.c -L库文件路径 -lNAME -o xxx//-L指定库文件路径 如同-I指定头文件路径一样,这时不可以libNAME.a,若想用.a则可以直接连接库文件路径/libNAME.a,就像连接一般的.o文件一样,因为.a就是打包了一堆.o文件 若不想用-I和-L指定路径则可以定义环境变量,库文件为:LIBRARY_PATH 头文件在C中为C_INCLUDE_PATH,C++中为CPLUS_INCLUDE_PATH 具体过程:env|grep LIBRARY_PATH//查看是否有该变量 export LIBRARY_PATH=路径:$LIBRARY_PATHenv|grep LIBRARY_PATH//查看是否添加成功 LIBRARY_PATH是编译时的库查找路径 LD_LIBRARY_PATH是运行时的动态库查找路径若连接的是动态库则运行前需要设置LD_LIBRARY_PATH或者其他两种方法见 http://www.360doc.com/showweb/0/0/470249707.aspx
默认情况下gcc的头文件查找目录为:/usr/local/include /usr/include 默认情况下gcc的库文件查找目录为:/usr/local/lib /usr/lib 定义宏 gcc -Wall -DNAME=VALUE xxx.c -o xxx 若为-DNAME则宏NAME默认为1 |
|
来自: sky_feiyang > 《Linux》