交叉编译opencv app

时间:2015-09-23 15:22:26

标签: c++ opencv cross-compiling linaro

所以我在Windows上为linux arm os交叉编译opencv应用程序。

  • 我在Eclipse中使用最新的linaro工具链。

  • 我在目标操作系统上构建了opencv,并使用构建的库将它们放在linaro的库中。

  • 我的应用程序的编译和链接适用于目标操作系统。

  • 编译适用于Eclipse,但某些特定链接失败 highgui库中的opencv函数:

链接过程中的

错误:

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库中的特定函数。

我确信我使用的库与目标臂OS上使用的库相同,但编译参数与目标操作系统相同。

我已经看过其他一些关于此事的帖子(Cross compiling opencv app, undefined reference to),但没有找到解决方案。

你有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我刚刚使用了Eclipse中的不同库,我在这里找到了https://github.com/Nolaan/libopencv_24,而且它有效。奇怪的问题。