| gcc -l参数和-L参数
在学习linux 对c编译时出现如下错误:
该问题对应源程序如下:
在这里为什么会出现undefined reference to 'sqrt'错误? 首先这是链接错误,不是编译错误,是你用编译器编译时参数用得不对,你没有指定链接程序要用到得库,这里我用到了数学函数sqrt,那么你就要在编译参数里指定程序要链接数学库,方法是在编译命令行里加入-lm。 接下来我们输入正确的编译语句,结果如下:
解决了以上问题,我们来了解一下gcc -l参数和-L参数的用法 |
|
| -l参数和-L参数 -l参数就是用来指定程序要链接的库,具体用法如下:拿数学库来说,它的库文件名是libm.so它的库名为m。 假如要用到一个第三方提供的库名字叫libxxx.so,那么我们只要把libtxxx.so拷贝到/usr/lib里,编译程序时加上-ltxxx参数,就可以编译了放在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接了,但如果库文件没放在这三个目录里,而是放在其他目录里,这时我们要用另外一个参数-L。再比如我们把libxxx.so放在/c/d目录下,那链接参数就是-L/c/d -lxxx 一般情况下,我们/usr/local/lib 中是没有内容的 这里我列举了一下我的红帽5中/usr/lib 中的提供的一些库:
|
|
|
|
gcc -l参数和-L参数
最新推荐文章于 2022-01-15 18:53:15 发布