linux下的库链接

Posted future_liu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下的库链接相关的知识,希望对你有一定的参考价值。

linux下的编译一般都是需要一些头文件或者库文件的支持,头文件或者库文件一般的默认路径是在/usr/include/ 和/usr/lib/下的,但是当你需要的文件没有在默认的路径下,该怎么办尼,这里提供了几种链接到的方法;
1.$ gcc foo.c -I /home/liuru/include -o foo                                               链接到/home/liuru/include 下的头文件,使用-I选项
2.$ gcc foo.c -L /home/liuru/lib -lfoo -o foo                                             链接到/home/liuru/lib/下的库文件,不需要使用-libfoo.so,因为                                                                                                                      当看到 lfoo 时会自动链接到libfoo.so 的库文件,libfoo是命名规范,
linux 下的库文件分为两大类,静态库(.a)和动态库(.so) , 差别是运行时动态添加的还是编译时静态添加的,gcc 默认是动态库文件;
3.$ gcc foo.c -L /home/liuru/lib -static -lfoo -o foo                                  只添加静态库文件不添加动态库文件

以上是关于linux下的库链接的主要内容,如果未能解决你的问题,请参考以下文章

linux下的动态链接库和静态链接库到底是个什么鬼?动态链接库的编译与使用

Linux下的库

[Linux] Linux下undefined reference to ‘pthread_create’问题解决

Linux下用gcc编译C++文件时,所添加的库是默认在哪个目录下的?我用的是Ubuntu12.10的系统。

Linux下gcc生成和使用静态库和动态库详解

Linux下的库操作工具-nmarlddldconfig和ld.so