我正在尝试为BeagleBoard开发。因此,我安装了CodeSourcery Sourcery_G++_Lite工具链。
我想使用opencv库。所以我把源码下载到了我的Ubuntu开发系统上,用gcc作为共享库编译并安装了这个库。当我为x86架构构建一个helloworld应用程序时,一切都很好。
现在,我想用ARM体系结构的其他工具链编译相同的应用程序。
我在编译/链接时收到以下警告/错误:
john@ubuntu:~/Downloads/BeagleTest$ arm-none-linux-gnueabi-g++ -c ImageProcessing.cpp -o ImageProcessing.o -I/usr/local/include
cc1plus: warning: include location "/usr/local/include" is unsafe for cross-compilation
john@ubuntu:~/Downloads/BeagleTest$ arm-none-linux-gnueabi-g++ -c Main.cpp -o Main.o -I/usr/local/include
cc1plus: warning: include location "/usr/local/include" is unsafe for cross-compilation
john@ubuntu:~/Downloads/BeagleTest$ arm-none-linux-gnueabi-g++ -oApplication -L/usr/local/lib Main.o ImageProcessing.o -lopencv_core
/usr/local/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: library search path "/usr/local/lib" is unsafe for cross-compilation
/usr/local/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/local/lib/libopencv_core.so when searching for -lopencv_core
/usr/local/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lopencv_core
collect2: ld returned 1 exit status显然,im使用的是与x86体系结构相同的包含目录和库路径。这不起作用。但是我要做什么呢?我必须交叉编译opencv-library吗?
发布于 2011-04-01 19:54:50
库必须进行交叉编译,并且您必须确保在链接时找到正确的库。如果这不能自动工作,您可能想看看gcc的--sysroot命令行开关。
发布于 2011-04-01 19:37:18
是。库是特定于体系结构的。
https://stackoverflow.com/questions/5502603
复制相似问题