0

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

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

我看过其他一些关于此的帖子(交叉编译 opencv 应用程序,未定义引用),但没有找到解决方案。

你有什么想法吗?谢谢!

4

1 回答 1

0

好吧,我只是在 Eclipse 中使用了不同的库,我在这里找到了https://github.com/Nolaan/libopencv_24,它可以工作。奇怪的问题。

于 2015-09-23T20:41:41.973 回答