一、ubuntu20.04交叉编译环境配置arm-linux-gnueabihf-gcc

傈僳要吃吃 2024-08-13 10:07:04 阅读 92

在ubuntu上源码构建python,编译结果适用x86-64平台,接下来需要编译python的C代码,使之适用于arm平台,方便后续操作。

一、小讲堂

1.交叉编译

工具格式:arch [-vendor] [-os] [-(gnu)eabi]-gcc

如:gnu eabi h(hard) f(float)

二、环境/工具准备

1.python下载

版本:3.12.4

下载地址:Python Source Releases | Python.org  

//个人习惯:下载到Downloads目录,并解压缩为python-3.12.4

2.交叉编译工具链下载

sudo apt-get install gcc-arm-linux-gnueabihf

sudo apt-get install g++-arm-linux-gnueabihf

不用配置环境,使用以下命令查看编译器版本

arm-linux-gnueabihf-gcc -v

arm-linux-gnueabihf-g++ -v

使用以下命令查看options

#arm-linux-gnueabihf-gcc --h

Usage: arm-linux-gnueabihf-gcc [options] file...

Options:

  -pass-exit-codes         Exit with highest error code from a phase.

  --help                   Display this information.

  --target-help            Display target specific command line options.

  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].

                           Display specific types of command line options.

  (Use '-v --help' to display command line options of sub-processes).

  --version                Display compiler version information.

  -dumpspecs               Display all of the built in spec strings.

  -dumpversion             Display the version of the compiler.

  -dumpmachine             Display the compiler's target processor.

  -print-search-dirs       Display the directories in the compiler's search path.

  -print-libgcc-file-name  Display the name of the compiler's companion library.

  -print-file-name=<lib>   Display the full path to library <lib>.

  -print-prog-name=<prog>  Display the full path to compiler component <prog>.

  -print-multiarch         Display the target's normalized GNU triplet, used as

                           a component in the library path.

  -print-multi-directory   Display the root directory for versions of libgcc.

  -print-multi-lib         Display the mapping between command line options and

                           multiple library search directories.

  -print-multi-os-directory Display the relative path to OS libraries.

  -print-sysroot           Display the target libraries directory.

  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers.

  -Wa,<options>            Pass comma-separated <options> on to the assembler.

  -Wp,<options>            Pass comma-separated <options> on to the preprocessor.

  -Wl,<options>            Pass comma-separated <options> on to the linker.

  -Xassembler <arg>        Pass <arg> on to the assembler.

  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor.

  -Xlinker <arg>           Pass <arg> on to the linker.

  -save-temps              Do not delete intermediate files.

  -save-temps=<arg>        Do not delete intermediate files.

  -no-canonical-prefixes   Do not canonicalize paths when building relative

                           prefixes to other gcc components.

  -pipe                    Use pipes rather than intermediate files.

  -time                    Time the execution of each subprocess.

  -specs=<file>            Override built-in specs with the contents of <file>.

  -std=<standard>          Assume that the input sources are for <standard>.

  --sysroot=<directory>    Use <directory> as the root directory for headers

                           and libraries.

  -B <directory>           Add <directory> to the compiler's search paths.

  -v                       Display the programs invoked by the compiler.

  -###                     Like -v but options quoted and commands not executed.

  -E                       Preprocess only; do not compile, assemble or link.

  -S                       Compile only; do not assemble or link.

  -c                       Compile and assemble, but do not link.

  -o <file>                Place the output into <file>.

  -pie                     Create a dynamically linked position independent

                           executable.

  -shared                  Create a shared library.

  -x <language>            Specify the language of the following input files.

                           Permissible languages include: c c++ assembler none

                           'none' means revert to the default behavior of

                           guessing the language based on the file's extension.

Options starting with -g, -f, -m, -O, -W, or --param are automatically

 passed on to the various sub-processes invoked by arm-linux-gnueabihf-gcc.  In order to pass

 other options on to these processes the -W<letter> options must be used.

For bug reporting instructions, please see:

<file:///usr/share/doc/gcc-11/README.Bugs>.



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。