linux+编译到指定路径,linux 编译指定库、头文件的路径问题(转)

本文详细介绍了在Linux环境下,解决编译时遇到的undefined reference错误,讲解了-l和-L参数的用法,以及如何指定头文件目录-I参数。同时提到了环境变量如PKG_CONFIG_PATH、CC和CXX对编译的影响,并探讨了静态库和动态库的使用及创建过程。
摘要由CSDN通过智能技术生成

1. 为何会出现undefined reference to 'xxxxx'错误?html

首先这是连接错误,不是编译错误,也就是说若是只有这个错误,说明你的程序源码本身没有问题,是你用编译器编译时参数用得不对,你没有指定连接程序要用到得库,好比你的程序里用到了一些数学函数,那么你就要在编译参数里指定程序要连接数学库,方法是在编译命令行里加入-lm。数据库

2.-l参数和-L参数编程

-l参数就是用来指定程序要连接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来讲,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。编程语言

-L参数跟着的是库文件所在的目录名。再好比咱们把libtest.so放在/aaa/bbb/ccc目录下,那连接参数就是-L/aaa/bbb/ccc -ltest另外,大部分libxxxx.so只是一个连接函数

3. -include和-I参数测试

-include用来包含头文件,但通常状况下包含头文件都在源码里用#include xxxxxx实现,-include参数不多用。-I参数是用来指定头文件目录,/usr/include目录通常是不用指定的,gcc知道去那里找,可是若是头文件不在/usr/include里咱们就要用-I参数指定了,好比头文件放在/myinclude目录里,那编译命令行就要加上-I/myinclude参数了,若是不加你会获得一个"xxxx.h: No such file or directory"的错误。-I参数能够用相对路径,好比头文件在当前目录,能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值