--build --target --host的区别
时间: 2023-11-22 08:06:12 浏览: 252
--build、--target和--host是在交叉编译中使用的三个参数,它们的含义如下:
- --build表示编译平台的系统类型,即编译器所在的系统类型。
- --target表示生成的可执行文件或库的目标平台类型。
- --host表示运行生成的可执行文件或库的目标平台类型。
举个例子,如果我们需要在x86平台上编译一个运行于arm平台上的程序,那么:
- --build=x86
- --target=arm
- --host=arm
这样编译出来的程序就可以在arm平台上运行了。
--build、--target和--host的区别在于它们分别表示编译器所在的系统类型、生成的可执行文件或库的目标平台类型和运行生成的可执行文件或库的目标平台类型。这三个参数在交叉编译中非常重要,需要根据实际情况进行设置。
相关问题
交叉编译中--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"则是在一般编译中使用的参数。
交叉编译中--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`:通常由编译器自动检测并设置,不需要手动指定。
需要注意的是,不同的编译器和交叉编译工具链,对于这些参数的具体使用方式和设定值可能会有所不同,需要根据具体情况进行设置。
阅读全文