Questions tagged «gcc»

GCC是GNU编译器集合。它是Linux上针对C,C ++,Go,Fortran和Ada的事实上的标准编译器,并且还支持许多其他语言和平台。除编译器外,GCC还具有一个工具链(libc,libstdc ++,objdump,nm等),该工具链已在多个平台和系统上广泛使用。

1
brew安装gcc太费时间
我正在全新安装Mavericks,并且意外地 brew install gcc 这需要超过半小时,甚至更多。我应该终止吗?我现在知道我应该已经安装了特定的gcc(也许是gcc48),但是为时已晚,我的macbook空气呼吸困难。 目前已完成所有5个依赖项的下载,但停留在“安装gcc”部分。它下载了一个gcc-4.9.1.tar.bz2,进行了配置和构建,并停留在引导程序上。 任何建议表示赞赏。 这是我看不到的好建议:https : //apple.stackexchange.com/questions/38222/how-do-i-install-gcc-via-homebrew 首先在这里问:https : //superuser.com/questions/788256/brew-install-gcc-mac-os-10-9-mavericks
139 gcc  homebrew 


3
如何在Linux中编译静态库?
我有一个问题:如何在Linux中使用编译静态库gcc,即我需要将源代码编译成名为out.a的文件。仅使用命令编译就足够了gcc -o out.a out.c吗?我不太熟悉gcc,希望任何人都可以帮助我。
138 c  gcc  static-libraries 

8
在GCC / G ++编译器中使用-pedantic的目的是什么?
此说明说: -ansi:告诉编译器实现ANSI语言选项。这将关闭GCC的某些“功能”,这些功能与ANSI标准不兼容。 -pedantic:与结合使用-ansi,可以告诉编译器严格遵守ANSI标准,拒绝任何不符合要求的代码。 首先要注意的是: GCC / G ++编译器的-pedantic和-ansi选项的目的是什么(我听不懂上面的描述)? 谁能告诉我使用这两个选项的正确情况? 我什么时候应该使用它们? 他们重要吗?
136 c++  c  gcc  g++ 

19
/usr/lib/libstdc++.so.6:找不到版本“ GLIBCXX_3.4.15”
如何在Ubuntu中获得GLIBCXX_3.4.15?我无法运行正在编译的某些程序。 当我做: strings /usr/lib/libstdc++.so.6 | grep GLIBC 我得到: GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.4 GLIBC_2.3.4 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH 谢谢你的帮助!
135 c++  gcc  libstdc++ 

3
从函数返回结构时可能的GCC错误
我相信我在实施O'Neill的PCG PRNG时发现了GCC中的错误。(Godbolt的Compiler Explorer上的初始代码) 相乘后oldstate通过MULTIPLIER,(存储在RDI结果),GCC不该结果添加到INCREMENT,movabs'ing INCREMENT到RDX代替,然后把它用作rand32_ret.state的返回值 一个最小的可复制示例(Compiler Explorer): #include <stdint.h> struct retstruct { uint32_t a; uint64_t b; }; struct retstruct fn(uint64_t input) { struct retstruct ret; ret.a = 0; ret.b = input * 11111111111 + 111111111111; return ret; } 生成的程序集(GCC 9.2,x86_64,-O3): fn: movabs rdx, 11111111111 # multiplier constant (doesn't fit in …
133 c  gcc  assembly  x86-64  compiler-bug 

3
LLVM与OS X上的clang
我对OS X上的llvm,clang和gcc有疑问。 llvm-gcc 4.2,llvm 2.0和clang有什么区别?我知道它们都基于llvm构建,但是它们有何不同? 除了更快的编译速度之外,llvm与gcc相比还有什么优势?
133 c++  c  gcc  llvm  clang 

2
直接告诉gcc静态链接库
使用它-Wl,-Bstatic来告诉gcc我要静态链接的库对我来说很奇怪。毕竟我告诉gcc直接有关与库(链接的所有其他信息-Ldir,-llibname)。 是否可以直接告诉gcc驱动程序应静态链接哪些库? 澄清:我知道,如果某个库仅存在于静态版本中,它将在不使用的情况下使用它-Wl,-Bstatic,但是我想暗示gcc更喜欢静态库。我也知道直接指定库文件将与它链接,但是我更喜欢保持包含静态库和动态库的语义相同。

1
-std = c ++ 11和-std = gnu ++ 11有什么区别?
gcc和clang -std=c++11和-std=gnu++11as作为编译参数有什么区别?与c99和有相同的问题gnu99吗?我了解C ++和C标准,这是我感兴趣的参数差异。 我在某处读到它与某些扩展有关,但是对于一个新项目,我不清楚哪个扩展以及如何在一个或另一个之间进行选择。
132 c++  gcc  c++11  clang 

3
当限制为959但不是960时,为什么优化了一个简单循环?
考虑以下简单循环: float f(float x[]) { float p = 1.0; for (int i = 0; i < 959; i++) p += 1; return p; } 如果使用gcc 7(快照)或clang(树干)进行编译,-march=core-avx2 -Ofast则会得到非常类似的结果。 .LCPI0_0: .long 1148190720 # float 960 f: # @f vmovss xmm0, dword ptr [rip + .LCPI0_0] # xmm0 = mem[0],zero,zero,zero ret 换句话说,它只是将答案设置为960而不会循环。 但是,如果将代码更改为: …
131 c  gcc  optimization  clang 

4
GCC的默认包含目录是什么?
当我使用gcc编译非常简单的源文件时,无需指定标准包含文件(例如stdio或stdlib)的路径。 GCC如何知道如何找到这些文件? 它/usr/include内部是否具有硬连线的路径,还是会从其他OS组件获取路径?
131 c++  c  linux  gcc  include-path 

5
如何在Linux上为gcc创建简单的makefile?
我有三个文件:program.c,program.h和headers.h。 program.c包括program.h和headers.h。 我需要使用gcc编译器在Linux上进行编译。我不确定该怎么做。Netbeans为我创建了一个,但是它是空的。
130 c  gcc  makefile 


6
为什么带有GCC的x86上的整数溢出会导致无限循环?
以下代码在GCC上进入了无限循环: #include <iostream> using namespace std; int main(){ int i = 0x10000000; int c = 0; do{ c++; i += i; cout << i << endl; }while (i > 0); cout << c << endl; return 0; } 所以这是要解决的问题:有符号整数溢出在技术上是未定义的行为。但是x86上的GCC使用x86整数指令实现了整数算术-溢出会自动换行。 因此,尽管它是未定义的行为,但我希望它能溢出。但这显然不是事实。那我想念什么? 我使用以下代码编译了此代码: ~/Desktop$ g++ main.cpp -O2 GCC输出: ~/Desktop$ ./a.out 536870912 1073741824 …
129 c++  c  gcc  x86  undefined-behavior 

3
mingw-w64线程:posix vs win32
我正在Windows上安装mingw-w64,有两个选项:win32线程和posix线程。我知道win32线程和pthread之间有什么区别,但是我不明白这两个选项之间有什么区别。我怀疑如果我选择posix线程是否会阻止我调用WinAPI函数(如CreateThread)。 看来,此选项指定某个程序或库将使用哪个线程API,但又由什么使用?是通过GCC,libstdc ++还是其他? 我发现了这一点: Windows的gcc端口中的thread_posixs和thread_win32有什么区别? 简而言之,对于此版本的mingw,thread-posix版本将使用posix API并允许使用std :: thread,而threads-win32将使用win32 API,并禁用std :: thread部分。标准。 好的,如果我选择win32线程,则std :: thread将不可用,但仍将使用win32线程。但是用什么呢?
127 windows  gcc  pthreads  mingw 

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.