gpt4 book ai didi

c++ - linux交叉编译和动态库/链接

转载 作者:太空狗 更新时间:2023-10-29 23:09:21 25 4
gpt4 key购买 nike

我正在尝试为 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

显然,我使用与 x86 架构相同的包含目录和库路径。这是行不通的。但是我该怎么办?我必须交叉编译 opencv 库吗?

最佳答案

库必须交叉编译,您必须确保在链接时找到正确的库。如果那不应该自动工作,您可能需要查看 gcc 的 --sysroot 命令行开关。

关于c++ - linux交叉编译和动态库/链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5502603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com