交叉编译时经常出现 not found (try using -rpath or -rpath-link)这样的错误
因为我们是交叉编译所以缺少库是经常发生的事。特别是编一些依赖比较多的库的时候,比如opencv等等
出现这个肯定是交叉编译环境里面没有相应的库。那么此时我们可以设置rpath 让程序先编译链接通过。
rpath是什么?
说白了其实就是将库路径存储在二进制文件中以在运行时查找依赖项的能力
那么我们将rpath 设置一下,让他在链接的时候先不找,等到运行的时候就可以去相应的目录找了
$ORIGIN是什么?
ld.so在rpath规范中理解字符串$ORIGIN就代表程序的目录
那么此时我们可以设置CMakeLists.txt 的内容如下所示
cmake_minimum_required(VERSION 2.7)
project(htest)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -std=c++11 -lpthread -Wl,--rpath='$ORI