environment
Practical
Go to the official website to download the latest compressed package version 7.87.0, https://curl.se/download.html , and then unzip it
tar xvf curl-7.87.0.tar.gz cd curl-7.87.0
Next, prepare the cross-compilation tool chain, which is generally provided by the solution manufacturer. For example, I use /usr/local/linaro/gcc- arm -8.3-2019.03-x86_64- arm -linux-gnueabihf/ , its The directory structure is similar to the following

In order to find the corresponding compilation command in the shell , you need to modify the system environment variable PATH
export PATH=/usr/local/linaro/gcc- arm -8.3-2019.03-x86_64- arm -linux-gnueabihf/bin:$PATH
After setting, it will take effect immediately, and it is valid once. If you want to be effective for a long time, you can add the above export statement to the end of the ~/.bashrc file
Finally, to verify the environment, execute the command arm-linux-gnueabihf-gcc -v

Next, start compiling curl
./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf CC=/usr/local/linaro/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc --prefix=/home/longjing/xgx/curl-7.87.0/build make make install
in,
-
--targetrefers to the target platform for cross compilation -
--hostrefers to which platform to run after compiling -
--prefixrefers to the directory where the compiled files are stored, such as executable files, static/dynamic library files, etc. -
CCmeans cross compiler
configure can add many features, and you can add them according to your actual situation. After the compilation is complete, the directory structure of the build folder is like this

At this time, if you want to use the curl executable program on the development board of the corresponding solution, you can directly run bin/curl ; if you want to make an upper-level application based on curl , you can put the include and lib folders in your own project.
This article is transferred from https://xugaoxiang.com/2023/01/10/curl-arm-cross-compile/
This site is only for collection, and the copyright belongs to the original author.