Jetson 工具链文件夹结构和交叉编译时的 libgomp 链接器错误



所以我在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 目录的嵌套目录。我可以编译我的库,例如BoostPCL很好,但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% 正确,但现在一切都编译和链接精美。

最新更新