Кросс-компиляция, CMake и Symlinks - PullRequest
       77

Кросс-компиляция, CMake и Symlinks

0 голосов
/ 18 октября 2018

Поэтому я использую это руководство для кросс-компиляции OpenCV для Raspberry Pi:

https://visualgdb.com/tutorials/raspberry/opencv/build/ Я делаю это главным образом потому, что сборка чего-либо на RPi намного медленнее, чем на Windows, ипотому что мне нужны инструменты удаленной отладки Visual Studio.Все работало, как и ожидалось, особенно с усовершенствованной подсистемой CMake VisualGDB.Однако, когда я достиг шага развертывания, я столкнулся с некоторыми неприятностями.

Во-первых, SmarTTY не смог загрузить файл в каталог / usr, потому что нет способа применить команду sudo в приложении.Я мог скопировать все в каталог / home / pi и затем рекурсивно скопировать все в / usr, который работал как чудо!У меня работала удаленная отладка, и скомпилированные приложения подобрали все необходимые зависимости.Я не знаю, есть ли альтернатива ручному копированию файлов.

Второе раздражение было, когда я использовал команду ldconfig:

pi @ raspberrypi: ~ $sudo ldconfig

ldconfig: /usr/lib/libopencv_calib3d.so.4.0 не является символической ссылкой

.....

pi @ raspberrypi: / usr / lib$ ls libopencv_calib3d. * -al

-rwxr-xr-x 1 корневой корень 9832912 17 октября 18:16 libopencv_calib3d.so

-rwxr-xr-x 1 корневой корень 9832912 17 октября 18 18: 17 libopencv_calib3d.so.4.0

-rwxr-xr-x 1 корневой корень 9832912 17 октября 18:16 libopencv_calib3d.so.4.0.0

Как видите, вместо этогосоздание одного .so файла и нескольких символических ссылок создает несколько копий одного и того же файла.Это в основном потому, что Windows не поддерживает символические ссылки.Сейчас есть несколько специальных решений, таких как скрипты, которые конвертируют дубликаты файлов в символические ссылки, но это не выглядит как надежный подход.Как вы решаете эту проблему в повседневных задачах кросс-компиляции?

...