![]() |
1
17
关于“各种编译器的众多选项” 一个好消息是:你不必担心这些选项的细节。您将在适当的时候深入研究这个问题,只针对您使用的编译器,可能只针对与特定功能集相关的选项。但是作为新手,通常要相信默认选项或随make文件提供的选项。 这些功能的广泛类别(我可能会遗漏一些)包括:
关于编译器及其选项和功能的清单
关于构建过程
在预处理器上 : 预处理器是编译的第一步,尽管从技术上讲,它不是编译的一部分。此步骤的目的是:
关于预处理器的重要信息是,预处理器指令不是C语言的一部分,它们提供了一些重要的功能,例如前面提到的条件编译(例如,程序有多个版本,例如用于不同的操作系统,或者用于不同的编译器)s)
从那里拿走…
在我的宣言之后…我鼓励阅读更多内容,并深入研究编程和构建二进制文件。
|
![]() |
2
3
理想情况下,你不需要关心你正在使用的C++编译器。近年来,标准的兼容性得到了很大改善(甚至来自微软)。 编译器标志明显不同,但通常都有相同的特性,这只是一个不同的命名选项,例如在gcc和ms cl上设置警告级别。 编译系统独立于编译器,您可以将任何make与任何编译器一起使用。 |
![]() |
3
3
那 是 一个问题很多。
有些应用程序专门用于高性能图形等高度专业化的应用程序,并且有许多扩展和库来帮助工程师解决这些类型的问题。其他的是一般用途的,不一定总是最适合极端工作的。 使用每种类型锤子的技术因型号而异,也因型号不同而有所不同,但它们都有很多共同之处。宏预处理器是C和C++编译器的标准部分。
许多的简单比较
C++
编译器不“查看”生成文件。MaFaX文件的规则可以调用C++编译器,但也可以“编译”汇编语言模块。
装配
)处理其他语言、构建库、链接模块和/或后处理对象模块。makefile通常包含清除中间文件、建立调试环境、获取源代码等规则。编译是开发软件的一系列步骤中的一个环节。
此外,许多开发环境将makefile抽象为“项目文件”,由 integrated development environment (ide)试图简化或自动化许多编程任务。查看比较 here . 至于学习:选择一个具体的问题来解决并深入研究。目标平台(Linux/Windows/etc)和问题空间将很好地缩小选择范围。您所选择的通常与其他考虑因素相关联,例如为特定公司工作或作为团队的一部分。C++在其所有的味道中都有95%种共性。好好学习他们中的任何一个,学习下一个是小菜一碟。 |
![]() |
George S. · 是否存在基于元组的控制流语句内部表示? 7 年前 |
![]() |
FlatAssembler · 在x86程序集中计算exp(x) 7 年前 |
![]() |
cib · 即时编译和动态编译有什么区别? 7 年前 |
![]() |
Artemis · 寄存器与指令之间的差异 7 年前 |
![]() |
Sam · 了解go工具编译和链接命令 7 年前 |