手动编译时--host参数可选的目标平台有哪些
时间: 2024-01-15 15:04:39 浏览: 20
使用 `--host` 参数指定目标平台是手动编译时的一个重要步骤,具体可选的目标平台取决于 Mingw-w64 支持的架构和平台。以下是一些常见的目标平台:
- i686-w64-mingw32:32 位 Windows 平台,使用 x86 架构
- x86_64-w64-mingw32:64 位 Windows 平台,使用 x86 架构
- arm-w64-mingw32:Windows ARM 平台
- aarch64-w64-mingw32:Windows ARM64 平台
除了上述平台,Mingw-w64 还支持其他一些平台和架构,具体可在源代码包中的 `config.sub` 文件中查看。
需要注意的是,在使用 `--host` 参数指定目标平台时,还需要指定其他的编译选项,例如 `--enable-lib64` 选项用于启用 64 位库,`--disable-shared` 选项用于禁用共享库等。具体的编译选项和配置可以参考 Mingw-w64 的官方文档。
相关问题
交叉编译中--host --target --build
在交叉编译中,`--host`、`--target` 和 `--build` 是三个重要的配置参数。它们的含义如下:
- `--host`:指定编译生成的可执行文件运行的目标系统平台,也就是编译后的程序所要运行的目标平台环境。例如,在 Linux 上编译 Windows 程序时,`--host` 应该设置为 Windows 平台的目标架构和操作系统。
- `--target`:指定编译器要生成的目标系统平台,也就是编译器生成的代码将要运行的目标平台环境。例如,在 Linux 上编译 ARM 架构的程序时,`--target` 应该设置为 ARM 目标平台的架构和操作系统。
- `--build`:指定用来构建编译工具链的计算机系统的类型。这个参数一般由编译器自己检测并设置,不需要手动指定,除非你有特殊的需求。
举个例子,如果我们在 Ubuntu Linux 上使用交叉编译器编译一个运行在 ARM 架构的嵌入式设备上的应用程序,那么:
- `--host`:应设置为 ARM 架构和操作系统,例如`--host=arm-linux-gnueabihf`。
- `--target`:应设置为嵌入式设备的 ARM 架构和操作系统,例如`--target=arm-linux-gnueabihf`。
- `--build`:通常由编译器自动检测并设置,不需要手动指定。
需要注意的是,不同的编译器和交叉编译工具链,对于这些参数的具体使用方式和设定值可能会有所不同,需要根据具体情况进行设置。
交叉编译中--host --target --build和host target build的区别
在交叉编译中,"--host"、"--target"和"--build"是用来指定不同系统的参数。而"host"、"target"和"build"则是在一般编译中使用的参数。
具体区别如下:
1. "--host":指定编译后的程序将要运行的系统的参数。比如编译 ARM 架构下的程序,"--host"参数应该指定为 ARM,编译完成后的程序将在 ARM 系统上运行。
2. "--target":指定编译器生成的目标代码所针对的系统的参数。比如编译 ARM 架构下的程序,"--target"参数应该指定为 ARM,编译器将会生成针对 ARM 系统的目标代码。
3. "--build":指定编译器本身运行的系统的参数。比如在 Windows 系统上编译针对 ARM 架构的程序,"--build"参数应该指定为 Windows,编译器将会在 Windows 系统上运行。
4. "host":指定编译器运行的系统的参数。比如在 Linux 系统上编译程序,"host"参数应该指定为 Linux,编译器将会在 Linux 系统上运行。
5. "target":指定编译器生成的目标代码所针对的系统的参数。比如编译 ARM 架构下的程序,"target"参数应该指定为 ARM,编译器将会生成针对 ARM 系统的目标代码。
6. "build":与"--build"参数的作用相同,指定编译器本身运行的系统的参数。
总体来说,"--host"、"--target"和"--build"是用来指定交叉编译中不同系统的参数,而"host"、"target"和"build"则是在一般编译中使用的参数。