我想知道如何为ARM体系结构交叉编译库。假设我有用于英特尔架构的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编译器
答案 0 :(得分:1)
您需要为您的架构提供主机参数的工具链,例如基本上具有arm架构的arm-1808,主机参数将是arm-none-linux。我为我的架构使用了以下configure命令,并且编译成功,我可以在我的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