所以我在 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 应用程序,未定义引用),但没有找到解决方案。
你有什么想法吗?谢谢!