所以我在Docker容器中使用NVIDIA的Jetson工具链。
工具链似乎具有如下所示的文件夹结构:
gcc-4.8.5-aarch64
install
aarch-unknown-linux-gnu
bin
include
lib
lib64
sysroot
etc
lib
sbin
usr
var
bin
include
lib
libexec
share
有包含三个 lib 目录的嵌套目录。我可以编译我的库,例如Boost
和PCL
很好,但PCL
链接到我的应用程序可以:
/install/bin/../lib/gcc/aarch64-unknown-linux-gnu/4.8.5/../../../..
/aarch64-unknown-linux-gnu/bin/ld: warning: libgomp.so.1, needed by
/install/aarch64-unknown-linux-gnu/sysroot/lib/libpcl_common.so, not
found (try using -rpath or -rpath-link)
/install/aarch64-unknown-linux-gnu/sysroot/lib/libpcl_common.so: undefined reference to `GOMP_loop_dynamic_next@GOMP_1.0'
图书馆在那里:
./gcc-4.8.5-aarch64/install/aarch64-unknown-linux-gnu/lib64/libgomp.so.1
我刚刚提取了工具链压缩包并将CMake SYSROOT设置为随附的sysroot
。我仍然想知道这是否是它应该使用的方式。例如,我是否应该将libgomp.so.1
库和其他库从其当前位置移动到sysroot
目录?
让链接器在这里找到libgomp.so.1
的正确方法是什么?
我最终通过将/install/aarch64-unknown-linux-gnu/lib64
移到/install/aarch64-unknown-linux-gnu/sysroot/
下来解决这个问题。不确定这是否 100% 正确,但现在一切都编译和链接精美。