c++编译要点<linux>

21 篇文章 0 订阅

代码参见:

1、g++/gcc

  • 编译示例(链接库lib目录下的库libenglish_spelling_correct.a):
g++ main_test.cpp -L./lib -lenglish_spelling_correct -I./inc -o main
  • 问题:运行时,动态库找不到的解决办法有哪些?
#运行时动态库路径设置
https://www.cnblogs.com/homejim/p/8004883.html
#1 动态库放在如下路径
/lib或/lib64
/usr/lib或/usr/lib64
#2 设置链接路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:《your_lib_path》
#3 修改配置文件/etc/ld.so.conf
/etc/ld.so.cache中缓存了动态库路径
#4 链接时加如下命令
-Wl,-rpath=《my_thirdparty_lib_path》
#5 软连接
* 防止循环依赖
  • 问题:编译时,发生循环依赖或者明明有依赖找不到怎么办?
-Wl,–start-group \
… -laaa … \
-Wl,–end-group

#或者

将新库放在所有依赖库前面

2、makefile

3、cmake

  • 运行时动态库找不到
LINK_DIRECTORIES("/动态库绝对路径/")
或简写:
LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/lib)
  • 指定g++版本
make CXX=/usr/local/gcc-5.4.0/bin/g++
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值