Поэтому я использую набор инструментов 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
Вот?
Я в конце концов решил это, переместив /install/aarch64-unknown-linux-gnu/lib64
под /install/aarch64-unknown-linux-gnu/sysroot/
, Не уверен, что это на 100% правильно, но теперь все прекрасно компилируется и связывается.
Других решений пока нет …