阅读一些关于GCC内部的材料。首先是GCC的维基页面。然后,您可以使用MELT探针(您可能希望Linux系统使用它)。然后阅读GCC手册。和海湾合作委员会资源中心
使用gcc-v-wall
编译,它将显示CC1
正在运行的内容(并且-wall
总是有用的)。因此,请尝试使用gcc-v-wall hello.c-o helloworld.bin
编译
CC1
程序不在路径
或/usr/bin/
中,而是在我的系统上-在/usr/lib/gcc/x86_64-linux-gnu/4.8/cc1
中
命令gcc-print-prog-name=cc1
将告诉您gcc
使用的cc1
。有关更多信息,请参见GCC调试选项。
预处理现在在CC1
中。
gcc
程序只是一个驱动程序,启动cc1
(它完成大部分编译工作),然后启动as
、ld
等。
MELT站点包含一些文档和一些解释GCC的幻灯片,您可能会发现这些文档和幻灯片很有趣。MELT是一种扩展GCC的特定领域语言。
另见http://starynkevitch.net/basile/gcc-melt/cc1-internals.svg上的图片和下图
图片来自http://starynkevitch.net/basile/gcc-melt/gcc-melt-inside.png,由我完成,CC由sa
CC1
正在生成.s
程序集文件;AS
(由GCC
启动)将其转换为.o
。ld
链接器(由gcc
启动)将生成一个库或一个可执行文件。
我有一个Linux系统,但在MacOSX上非常相似。
关于链接的一本好书是Levine的Linkers&loaders书。
ps.MELT在2021年过时了,但我正在开发Bismon静态源代码分析器和RefPerSys(生成C++代码)。
问题内容: 我知道有一个“适用于Python 2.7的Microsoft Visual C ++编译器”,但是目前或计划中是否存在针对Python 3.4的Microsoft Visual C 编译器或适用于Python 3.x的夏娃Microsoft Visual C 编译器?如果我不必在整个实验室中安装其他版本的Visual Studio,那将是非常有益的。 问题答案: 不幸的是,要能够使用其
我想在Mac终端中编译C11源代码,但失败了。我尝试了、、和 ,但都没有成功。终端始终读取 。然而, 和类似的东西运行良好(当然,C11源代码无法通过)。 我应该使用哪个选项来打开C 11支持? 顺便说一下,我正在使用的命令行工具安装在Xcode中,我很确定它们是最新的。
本文向大家介绍C++ 用Clang编译,包括了C++ 用Clang编译的使用技巧和注意事项,需要的朋友参考一下 示例 由于锵前端被设计为是与GCC兼容,当你交换可通过GCC编译大多数程序将编译g++通过clang++在构建脚本。如果没有-std=version给出,将使用gnu11。 习惯了MSVC的Windows用户可以cl.exe与交换clang-cl.exe。默认情况下,clang尝试与已安
有没有办法使用MinGW作为MS Visual C++的替代品?很多Python包都需要VS C++才能安装:4.5GB的磁盘空间!MinGW只需要450 MB,就可以达到编译C/C++的目的。 我使用的是Visual Studio代码,我尽量避免在3)-->中建议的Microsoft Visual C++安装,您也可以只安装C++构建工具:https://Code.visualstudio.co
我使用以下两个C++编译器: cl.exe:Microsoft(R)C/C++优化编译器版本19.00.24210 for x86 g++:g++(Ubuntu 5.2.1-22Ubuntu2)5.2.1 201 51010 当使用内置正弦函数时,我得到不同的结果。这并不重要,但有时结果对我来说太有意义了。下面是一个具有“硬编码”值的示例: 使用cl.exe生成的结果: G++的结果: 我知道G+
问题内容: 我在Mavericks上运行Eclipse并安装了1.7 JDK时遇到编译问题: 类文件的版本错误为51.0,应为49.0 因此,由于这看起来像javac版本控制问题,因此我删除了所有Java版本。安装了1.7_51,安装了Apple提供的1.6版本,以便运行Eclipse,更改了符号链接,因此默认值为1.7。与以前相同的问题,同一项目无法编译,尽管其他项目可以编译, 下一步,将问题分