Поэтому я кросс-компилирую приложение opencv в Windows для операционной системы Linux.
Я использую новейший набор инструментов linaro с Eclipse.
Я собрал opencv на целевой ОС и взял встроенные библиотеки, чтобы поместить их в библиотеки linaro.
Компиляция и ссылка моего приложения работает на целевой ОС.
Компиляция работает с Eclipse, однако для некоторых конкретных ссылок происходит сбой
Функция opencv в библиотеке highgui:
ошибки во время процесса ссылки:
main.cpp:79: undefined reference to `cv::imread(std::string const&, int)'
main.cpp:235: undefined reference to `cv::putText(cv::Mat&, std::string const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
main.cpp:237: undefined reference to `cv::putText(cv::Mat&, std::string const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
Пожалуйста, обратите внимание: я использую много других функций opencv, которые можно найти в других библиотеках, которые хорошо компилируются и связываются (я проверил, комментируя три строки, связанные с ошибкой, и перекомпиляцию). Даже некоторые функции, присутствующие в библиотеке highgui, работают нормально … Так что проблема, похоже, связана с конкретными функциями в библиотеке highgui.
Я уверен, что я использую те же библиотеки, что и в целевой операционной системе, с теми же параметрами компиляции, которые работают в целевой операционной системе.
Я видел некоторые другие сообщения об этом (Кросс-компиляция приложения opencv, неопределенная ссылка на), но не нашел решения.
Есть ли у вас какие-либо идеи? Спасибо!
Ну, я просто использовал разные библиотеки с Eclipse, которые я нашел здесь https://github.com/Nolaan/libopencv_24 вместо этого, и это работает. Странная проблема.
Других решений пока нет …