Структура папки набора инструментов Jetson и ошибка компоновщика libgomp при кросс-компиляции - PullRequest
0 голосов
/ 03 мая 2018

Поэтому я использую набор инструментов NVIDIA Jetson в контейнере Docker.

Кажется, что цепочка инструментов имеет структуру папок:

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 здесь?

1 Ответ

0 голосов
/ 04 мая 2018

Я в конце концов решил это, переместив /install/aarch64-unknown-linux-gnu/lib64 в /install/aarch64-unknown-linux-gnu/sysroot/. Не уверен, что это на 100% правильно, но теперь все прекрасно компилируется и связывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...