Questions tagged «gcc»

GCC是GNU编译器集合。它是Linux上事实上的标准C编译器,并且还支持许多其他语言和平台。

5
如何编写一个非常基本的编译器
高级编译器喜欢gcc根据代码的编写语言(例如C,C ++等)将代码编译为机器可读文件。实际上,它们根据相应语言的库和功能来解释每个代码的含义。如果我错了纠正我。 我希望通过编写一个非常基本的编译器(可能使用C语言)来编译静态文件(例如,文本文件中的Hello World)来更好地理解编译器。我尝试了一些教程和书籍,但所有这些都是针对实际案例的。它们处理具有与相应语言相关的含义的动态代码的编译。 如何编写基本的编译器以将静态文本转换为机器可读文件? 下一步将变量引入编译器。想象一下,我们想编写一个只编译某种语言功能的编译器。 引入实用的教程和资源受到高度赞赏:-)
214 c  compiler  compilation  gcc 

9
缺乏编译器错误词汇表使新手程序员感到沮丧
我一家人的朋友在学习编程(用C语言)时向我寻求帮助。在我们交谈时,他对很难理解自己的编译器(GCC)在出错时向他发送的错误消息感到沮丧。他不理解所有使用的术语,有时是它们的组合超出了他的理解。他问我:“编译器文档为什么不包含对错误消息的更长解释?” 我对他没有一个好的答案。 我本人-作为一个经验丰富的程序员-在这种情况下很少见,但那些罕见的情况确实发生了-我以前从未遇到过的一些奇怪的错误消息。我设法在搜索引擎中查找错误消息,但是显然这并不总是对他有用-尤其是因为他遇到的错误更常见并且发生在多个不同的情况下,这与他的问题有关拥有。 那么,新手程序员应该如何应对理解编译器错误消息的挑战?具体来说,结合C和GCC?

3
如果Windows上没有线程支持,GCC会死吗?[关闭]
我需要一些意见。GCC一直是一个非常好的编译器,但是最近它失去了“吸引力”。我刚刚发现Windows上没有GCC std::thread支持,由于仍然缺少最激动人心的功能,因此迫使Windows用户使用其他编译器。 但是,为什么GCC确实在Windows下仍然没有线程支持?许可问题?ABI不兼容?(嗯,已经有几个使用多线程的跨平台库:boost,POCO,SDL,wxwidgets等。使用已经存在且已获得MIT / libpng许可的代码来适应这个漏洞而不是发布GCC版本不是很简单吗?没有线程支持?) 最近,通过对编译器的比较,GCC对C ++ 11功能的支持比其他编译器要大,除了在Windows上这不是事实,因为我们仍然缺少原子,互斥体和线程:/ 我想了解更多有关此主题的信息,但我唯一能找到的人是寻求帮助的人,因为: std名称空间中不存在“线程” 从GCC / TDM-GCC的票务跟踪和邮件讨论开始,自2009年以来就一直在寻求线程支持的请求。可能在4年后仍然没有解决方案吗?到底发生了什么事?

4
GCC vs clang / LLVM —各自的优缺点
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 GCC与clang / LLVM的优缺点是什么?
20 compiler  clang  gcc  llvm 

4
是否在g ++中使用-pedantic标志?
我正在学习C ++,并且正在Linux上使用g ++进行练习。 我想知道从事程序员工作的人们是否使用g ++ -pedantic标志及其在现实世界中的重要性。 那其他编译器又如何呢?这是否已成为事实上的标准? 我很感兴趣,因为我正在阅读C ++ Primer,作者指出在数组定义中使用非常量表达式作为维是非法的,并且默认情况下g ++允许这样做。也许还有其他我不知道的事情。
16 c++  gcc 

2
为什么glibc与GCC分开维护?
GCC是C编译器。Glibc是C库。但是,对于作为C实现捆绑在一起的编译器和标准库,这不是绝对必要吗? 例如,C库包含ABI和编译器具体的东西等<limits.h>,<stdint.h>等,编译器和API之间而不同。诸如“如何调用主函数”之类的细节也取决于编译器,但实际上,这些细节是由libc.soLinux系统提供的。例如,如果我更改编译器以使其与另一个ABI一起使用,例如使用int8个字节,则C库将不再起作用,因为其中的内容<limits.h>将变得错误。
13 c  gcc 

5
有没有办法将gcc用作库?
任何人都知道这样的解决方案: #include <stdio.h> #include <gcc.h> /* This .h is what I'm looking for. */ int main (void) { /* variables declaration (...) */ /* The following line is supposed to be equivalent to: * $ gcc main.c -o main */ results = gcc_compile_and_link("main.c", "main"); /* Now I want to use …
10 c++  c  gcc 

2
因为GCC是用C ++本身编写的,所以没有鸡和蛋的问题吗?
从4.8版本开始,C ++编译器GCC(它的G ++部分)不再用C编写,而是用C ++本身编写。我对此有一个假设的问题。 我想知道如何在还没有C ++编译器的新平台上编译GCC的C ++代码。当然,您可以使用在其他计算机上编译的预构建二进制文件。或者,您可以使用用C编写的旧版GCC,然后使用它编译当前版本。 但是,如果没有预构建的二进制文件,而只有最新版本,您就会陷入困境,对吗?如果没有,那么从GCC项目的C转换为C ++会对这种情况产生其他影响吗?
10 c++  compiler  gcc 

1
为什么GCC默认使用AT&T语法?
我认为标题说明了一切:) GCC使用AT&T / GAS语法有什么特殊的实际原因(我想这主要是历史原因,但我自己找不到)。 注意:我知道这只是默认设置,您可以对其进行切换 注2:我个人认为“英特尔语法”更具可读性,所以这使我感到惊讶。
9 history  assembly  gcc 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.