2015-04-07 168 views
1

我正在关注this site编译OpenCV for ARM。OpenCV for ARM交叉编译失败

它找不到我的编译器,所以我硬编码成cmake的文件

find_program(CMAKE_C_COMPILER NAMES arm-linux-gnueabi-gcc-4.7) find_program(CMAKE_CXX_COMPILER NAMES arm-linux-gnueabi-g++-4.7) set(ARM_LINUX_SYSROOT /usr/arm-linux-gnueabi CACHE PATH "ARM cross compilation system root")

它编译成aproximately 50%,然后引发以下错误:

Linking CXX shared library ../../lib/libopencv_viz.so /usr/lib/libvtkCharts.so.5.8.0: file not recognized: File format not recognized collect2: error: ld returned 1 exit status

我不是在每一个经历交叉编译(或直接编译)。我该如何解决?

+0

你不需要硬线编译器在你的CMakeLists.txt。您可以通过-DCMAKE_C_COMPILER = ..将它传递给cmake等等。 – usr1234567

回答

-1

编译OpenCV 2.4.10为我工作。我没有任何首选版本。如果你想编译v3.0,请参阅@Kornel的答案,这意味着离开编译库。

使用此命令可以结帐v2.4.10

git checkout 2.4.10

2

我认为这是libopencv_vizlibvtkCharts之间的不匹配。你的一些第三方库是为另一个平台而构建的。这些库本身必须从源代码重新编译,以匹配打算使用它们的系统的详细信息(ABI,动态系统库依赖关系等)。

+0

我检出了v2.4.10,并成功编译。 –

+0

然后你应该离开编译的'viz'模块(如果你想编译2.4.11或3.0)。 – Kornel