Кросс-компиляция программы на C ++, которая включает файлы заголовков OpenCV, завершается неудачно - PullRequest
1 голос
/ 01 мая 2019

Я могу кросс-компилировать простую программу на C ++.(напр. g++ -o test test.cpp & arm-linux-gnueabihf-g++ -o test test.cpp).Но когда я включаю заголовочные файлы OpenCV в программу на C ++ и кросс-компиляцию, это приводит к ошибке. (Например, arm-linux-gnueabihf-g++ -o ocv_test ocv_test.cpp $(pkg-config --libs --cflags opencv)).

Также я могу успешно скомпилировать с компилятором по умолчанию, т.е. g ++. (Например,g++ -o ocv_test ocv_test.cpp $(pkg-config --libs --cflags opencv))

Я выполнил cmake с

-D CMAKE_TOOLCHAIN_FILE=../platforms/linux/arm.toolchain.cmake \.

согласно документам opencv.Это не помогло.

Я добавил opencv, включив dir в компиляцию cmd, т.е. -I/path/to/opencv/include и удалив pkg-config.Это не помогло.

Я попытался изменить файл arm-gnueabi.toolchain.cmake, экспортировав PKG_CONFIG_LIBDIR в соответствии с предложением кого-то.Это не помогло.

Я получил следующую ошибку:

__/usr/lib/gcc-cross/arm-linux-gnueabihf/7/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lopencv_shape
//usr/local/lib/libopencv_stitching.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status__

Я хочу, чтобы мое кросс-скомпилированное приложение OpenCV работало на RaspberryPI. Я в замешательстве.Кросс-компиляция исходников OpenCV с опцией -D CMAKE_TOOLCHAIN_FILE должна позволить нам кросс-компилировать программы OpenCV C ++.В противном случае нам придется отдельно создавать или создавать (кросс-компилировать) каждую программу OpenCV C ++ на сборочной машине.

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