为arm架构编译库

时间:2012-05-17 05:53:18

标签: linux cross-platform arm cross-compiling

我想知道如何为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编译器

1 个答案:

答案 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