1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > linux 下 gcc编译程序时 -I(大写i) 与-L(大写l)-l(小写l) 的作用

linux 下 gcc编译程序时 -I(大写i) 与-L(大写l)-l(小写l) 的作用

时间:2018-11-11 09:42:00

相关推荐

linux 下 gcc编译程序时 -I(大写i) 与-L(大写l)-l(小写l) 的作用

-I(大写i)

include头文件非标准库中存在的不是在当前路径文件夹下的,需要将地址用-I(大写)指定

如:gcc test.c -I /home/hello/include

-L(大写l)

放在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接了,但如果库文件没放在这三个目录里,而是放在其他目录里,这时我们只用-l参数的话,链接还是会出错,出错信息大概是:“/usr/bin/ld: cannot find -lxxx”,也就是链接程序ld在那3个目录里找不到libxxx.so.这时另外一个参数-L就派上用场了,比如curl库,它在/home/pi/curl/lib目录下,我们编译时就要用-L /home/pi/curl/lib-L参数跟着的是库文件所在的目录名。编译程序按照-L指定的路进去寻找库文件,一般的在-L的后面可以一次用-l指定多个库文件。

-l(小写l)

1.-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名2.表示在上面的lib的路径中寻找libxxx.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libxxx.a静态库文件)3.编译程序到系统默认路径搜索,如果找不到,到当前目录,如果当前目录找不到,则到LD_LIBRARY_PATH等环境变量配置的路径去查找,如果还找不到,那么编译程序提示找不到库。

如我们编译程序时使用的:-lwiringPi -lpthread

注意:一个库的库名是xxx,他的库文件名是libxxx.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。