0

所以我在 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

我刚刚提取了工具链 tarball 并将 CMake SYSROOT 设置为随附的sysroot. 我仍然想知道它是否应该是这样使用的。例如,我应该将libgomp.so.1其他库从当前位置移动到sysroot目录吗?

使链接器在libgomp.so.1此处找到的正确方法是什么?

4

1 回答 1

0

我最终通过移动解决了这个/install/aarch64-unknown-linux-gnu/lib64问题/install/aarch64-unknown-linux-gnu/sysroot/。不确定这是否 100% 正确,但现在一切都可以很好地编译和链接。

于 2018-05-04T09:25:09.637 回答