我想知道如何交叉编译 ARM 架构的库。假设我有用于 Intel 架构的 libcurl 库,现在我想使用该库在 ARM 架构中运行应用程序。我需要执行此交叉编译的步骤是什么?我使用的是 Ubuntu 32 位机器。 我已经完成了类似的基本步骤
./configure --host= ...
make
make install
但无法获得完整的想法。请提供一些有用的链接,或者是否有人可以解释这些事情。任何帮助将不胜感激。
我知道SO中已经有一个帖子“http://stackoverflow.com/questions/5832734/cross-compiling-a-library-from-intel-to-arm”,但我没有得到事情由此澄清。
平台:linux、gcc编译器
最佳答案
您需要为您的架构的工具链提供主机参数,例如 arm-1808它基本上具有arm架构,主机参数将是arm-none-linux。我对我的架构使用了以下配置命令,它编译成功,并且我能够在我的 ARM 板上运行该应用程序。
0。
如果工具链不在您的 PATH 中,那么您可以使用如下命令将其包含在内:
export PATH=/home/user/CodeSourcery/Sourcery_G++_Lite/bin/:$PATH
1.
./configure --host=arm-none-linux-gnueabi --build=i686-linux CFLAGS='-Os' --with-ssl=/usr/bin/openssl --enable-smtp
2.
make
3.
sudo make install
4. 现在是时候构建您的应用程序了。
arm-none-linux-gnueabi-gcc -o email smtp-multi.c -I/usr/local/include -L/usr/local/lib -lcurl
基本上,您需要在编译应用程序时给出 CPP 和 CF 标志,要查找 CF 和 CPP 标志,您可以分别使用以下命令:
curl-config --cflags
curl-config --libs
如果上述命令不起作用,请尝试:
arm-none-linux-gnueabi-gcc -o email smtp-multi.c -lcurl
关于linux - 为arm架构编译库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10630547/