我知道有很多编译器,比如gcc,clang,ninja,但是我经常听说"Toolchains“等等,但是我不明白它们是什么,比如”gnu-toolchain“等等。
发布于 2020-03-05 14:59:52
有几个重要术语:
gcc/g++、clang/clang++、cl、icc/icpc、cl将编译器生成的二进制代码组装成特定的对象文件格式( Visual的.obj文件、几乎所有其他东西的.o文件)。在从源代码生成对象文件时,这通常是内置的,或者至少由编译器调用。例如,as,.ld,link,lld,.(3a)“图书馆员”:Unix工具ar或Visual工具lib.exe。这只是将对象文件打包成一个薄包装格式的(.a/.lib).
lldb、windbg、windbg--所有这些组合在一起。调试器可能被认为也可能不是这个though.
make、ninja、msbuild、xcode-build、.
cmake、qmake、premake、.
发布于 2020-03-05 13:42:01
工具链是用于构建项目的一组工具(例如编译器、链接器和汇编程序)。其他工具(如调试器)可以与工具链相关联。根据系统上安装的编译器,可以有几个可用的工具链。
发布于 2020-03-05 14:17:30
我知道有很多编译器,比如gcc,clang,I
忍者不是一个编译器。它是一个构建自动化工具,或者说是一个“构建系统”。构建自动化工具读取配置,并生成必要的命令来调用构建程序所需的工具链工具。
比如
,CMake是什么?
CMake是一种配置语言和程序,它为构建自动化工具(如忍者)生成配置。
使用这种生成器的原因是您可以选择使用任何构建系统(由生成器支持),这很重要,因为并非所有系统都支持所有构建系统。构建系统生成器的另一个原因是检测系统和使用的工具链的功能,并使用这些信息更改配置。
C++工具链和编译器有什么区别?
工具链是将源文件转换为可执行文件(或库)并执行它所需的一组工具。
编译器是工具链包含的工具之一。编译器的工作是将源文件作为参数,并为目标系统生成程序集代码--尽管这个视图有点过时:通过链接时间优化,编译器将生成“中间表示”语言。
喜欢“gnu-工具链”
GNU工具链是一组使用GNU编译器的工具,即GCC。
,那么工具链包含什么?
它可以取决于上下文,但以下是典型的情况:
翻译阶段:
执行阶段:
动态loader
其他工具也可被视为工具链的一部分,例如:
tools
以及程序员可以使用的许多其他小型工具。
https://stackoverflow.com/questions/60546658
复制相似问题