linux 设置运行依赖库,cmake编译程序运行时依赖链接库设置

编译运行的程序需要链接到程序所在路径下的某些个动态库,为方便移植,必须设置链接库的相对路径,比如./lib等等。

默认在Linux系统下动态库的搜寻路径如下:

使用选项 -Wl,-rpath 在编译时指定;

通过配置LD_LIBRARY_PATH 来指定;

在/lib 和 /usr/lib 中查找;

其中第一个在gcc编译选项中添加:-Wl,rpath=xxx 会将rpath路径写入到程序中保存起来。

以下两种方式都可以用来配置rpath路径:

1、使用gcc编译选项:

add_definitions(-std=c++11)

SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -Wl,-rpath=./:./lib") #-Wl,-rpath=./

SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wl,-rpath=./:./lib") #-Wall

2、使用cmake配置

set(CMAKE_SKIP_BUILD_RPATH FALSE)

set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)

set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

set(CMAKE_INSTALL_RPATH "./lib")

其中RPATH可以使用"./lib"或"./"配置,有可以使用"$ORIGIN/lib"或“\${ORIGIN}/lib”,这里必须加上\符号,否则无法识别。

还可以同时定义多个RPATH,比如:“$ORIGIN:$ORIGIN/lib”,中间使用:分割。

文章来源: www.oschina.net,作者:极客行,版权归原作者所有,如需转载,请联系作者。

原文链接:https://my.oschina.net/u/3489228/blog/3134953

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值