1 C程序中头文件、库文件的查找
对于如下C程序:
#include <stdio.h>
int main(int argc, char** argv)
{
if (argc == 2)
{
printf("Hello, %s!\n", argv[1]);
}
else
{
printf("Hello, world!\n");
}
return 0;
}
1.1 头文件有什么用
主要用来声明declare,给别的程序员看,给编译器看。
1.2 C文件有什么用
主要用来定义/实现define。
1.3 头文件在哪里
头文件的目录分为默认目录和可指定的目录:
- 默认路径:编译器中的include目录
- 可指定:
- #include “xxx.h” 当前目录
- 编译时用-I选项指定
怎么确定交叉编译器中头文件的默认路径?
进入交叉编译器的目录里,执行:find -name “stdio.h”,它位于一个“include”目录下的根目录里。这个“include”目录,就是要找的路径。
怎么自己指定头文件目录?
编译时,加上“-I <头文件目录>”这样的选项。
1.4 printf函数在哪里
库函数的目录分为默认目录和可指定的目录:
- 默认路径:编译器中的lib目录
- 可指定:
- 编译时用-L选项指定目录
- 用-l选项指定库
怎么确定交叉编译器中库文件的默认路径?
进入交叉编译器的目录里,执行:find -name lib,可以得到xxxx/lib、xxxx/usr/lib,一般来说这2个目录就是要找的路径。如果有很多类似的lib,进去看看,有很多so文件的目录一般就是要找的路径。
1.5 如何指定自己的库
怎么自己指定库文件目录、指定要用的库文件?
编译时,加上“-L <库文件目录>”这样的选项,用来指定库目录;编译时,加上“-labc”这样的选项,用来指定库文件libabc.so。
运行的时候则需要将自己的库拷贝到lib目录下,或者通过export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:库文件的目录
指明要链接的库文件的所在位置。
参考资料: