gcc -l链接库

g++编译时, 用-labc 选项后, 编译器会自动按照命名规则去搜索 libabc.a 库文件, 但如果我想使用动态链接库链接应如何指定参数?


优先链接共享库。共享库找不到,才链接静态库。


可是如果我在 -l 选项后添加共享库, 则链接时报告库文件不存在, 共享库和静态库的命名规则是否一样?
例如我有一个名为 libabc.so, 我应采用什么格式的选项才可以在gcc命令中找到它?


使用 -l 选项指定静态库和动态库的格式都是一样的,如果库文件名为libabc.so,那么就用 -labc 即可。
链接时会去搜索这个库文件,如果不是系统库,那么你需要告诉链接器它的路径。有两种方法:一种是在参数中用 -L 选项指定库文件搜索路径,可以并列多个。例如:gcc -L /home/ddd -L/home/ddd/lib。 另一种方法是在环境变量中设置LD_LIBRARY_PATH 包含有你的动态库文件所在的路径。这个环境变量用在Sorlarise和Linux,如果你是在HP-UX下,是SHLIB_PATH。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值