【发布时间】:2018-05-03 13:38:38
【问题描述】:
所以我在 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的正确方法是什么?
【问题讨论】:
-
在 sysroot 之外有链接器(
install/aarch64-unknown-linux-gnu/bin/ld)看起来很可疑。您是否尝试过将install/aarch64-unknown-linux-gnu用作 sysroot?
标签: c++ docker cmake linker nvidia-jetson