Questions tagged «gcc»

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

8
我怎样才能告诉gcc不要内联函数?
说我在源文件中有这个小功能 static void foo() {} 并且我构建了二进制文件的优化版本,但我不想内联此函数(出于优化目的)。我可以在源代码中添加宏以防止内联吗?
126 c  gcc  inline 

9
如何从库头中隐藏GCC警告?
我有一个使用log4cxx,boost等库的项目,其标头会生成很多(重复)警告。有没有一种方法可以禁止来自库包含(例如#include <some-header.h>)或来自某些路径的包含的警告?我想在项目代码中照常使用-Wall和/或-Wextra,而不会模糊相关信息。我目前在make输出上使用grep,但是我想要更好的东西。

6
未定义对“ pow”和“ floor”的引用
我试图用C语言制作一个简单的斐波那契计算器,但是编译时gcc告诉我我缺少pow和floor函数。怎么了? 码: #include <stdio.h> #include <math.h> int fibo(int n); int main() { printf("Fib(4) = %d", fibo(4)); return 0; } int fibo(int n) { double phi = 1.61803399; return (int)(floor((float)(pow(phi, n) / sqrt(5)) + .5f)); } 输出: gab@testvm:~/work/c/fibo$ gcc fib.c -o fibo /tmp/ccNSjm4q.o: In function `fibo': fib.c:(.text+0x4a): undefined reference to `pow' …

1
-all_load链接器标志有什么作用?
在编译Objective-C代码时,我在任何地方都找不到-all_load标志。 我在将二进制文件上传到Apple时遇到一些问题,他们说这是因为我没有使用此标志,但是即使没有它,我的代码也可以编译。 有人可以帮我吗? 谢谢


7
如何为CMake指定新的GCC路径
我的操作系统是centos,它在path中具有默认的gcc /usr/bin/gcc。但是它很旧,我需要新版本的gcc。因此,我在新路径中安装了新版本/usr/local/bin/gcc。 但是当我运行时cmake,它仍然使用旧版本的gcc path(/usr/bin/gcc)。如何指定gcc到新的path(/usr/local/bin/gcc)。 我试图覆盖/usr/bin/gcc有/usr/local/bin/gcc,但它不能正常工作。
122 gcc  cmake 

5
C,C99,ANSI C和GNU C有什么区别?
我已经开始在Codechef上进行编程实践,并且对C和C99之间的差异感到困惑。C在这里是什么意思?是C89吗?检查此提交底部的语言。它同时包含C和C99。 我在互联网上发现了一个名为GNU C的东西。Linux / unix系统是否有其他C?这些是否符合ANSI的C标准?我在某些地方也读过“ C99严格”。这是什么? 是否还有其他使用的C标准?是否有所谓的C 4.3.2或当前使用的gcc版本? 编辑: 这,这,这有所帮助。我将搜索更多并编辑未回答的内容。 我不是编程新手。我知道什么是C语言。我知道ANSI有不同的C标准,例如C89,C99和C11。
122 c  gcc  c99  c89  ansi-c 

4
fpermissive标志的作用是什么?
我只是想知道该-fpermissive标志在g ++编译器中的作用是什么?我正进入(状态: 错误:使用临时地址[-fpermissive] 我可以通过将-fpermissive标志提供给编译器来解决 。 编辑:我只是找到了导致临时地址错误部分的原因!我现在要修复该部分。

6
错误:使用已删除的功能
我一直在研究一个朋友写的一些C ++代码,遇到以下错误,使用gcc4.6编译时从未见过: error: use of deleted function ‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would be ill-formed: uninitialized non-static const member ‘const h_t FlopPokerGameFSM_<std::array<C, 2ul> >::hdealt::h’ 编辑:这来自使用Boost MSM的部分代码:Boost Webpage Edit2:= delete()源代码中的任何地方都没有使用过。 一般来说,此错误是什么意思?发生此类错误时我应该寻找什么?


5
如何在Windows 7机器上安装gcc?
我的Windows 7机器上装有MinGW。我希望为C编译器安装并使用完整的gcc。我发现没有用于此目的的单个预编译的现成安装文件。我检查了以下页面:http : //gcc.gnu.org/install/ 很难,我发现它超出了我的理解水平。请问有人可以提供逐步指导以及链接吗?

7
如何使用gcc / g ++在Linux上为Windows编译?
我已经在Linux上使用freeglut在C ++(g ++)中编写了一些效果,并使用 g++ -Wall -lglut part8.cpp -o part8 所以我想知道是否可以让g ++制作包含所需一切的静态Windows可执行文件? 我没有Windows,所以如果我可以在Linux上这样做,那真的很酷:)
119 c++  opengl  gcc  glut  freeglut 

9
我如何从一个8位整数中得到一个大于8位的值?
我找到了隐藏在这个小宝石后面的极其讨厌的错误。我知道,按照C ++规范,带符号的溢出是未定义的行为,但是只有当值扩展到bit-width时才发生溢出sizeof(int)。据我了解,增加a char永远不会是未定义的行为sizeof(char) < sizeof(int)。但这并不能解释如何c获得不可能的价值。作为8位整数,如何c保存大于其位宽的值? 码 // Compiled with gcc-4.7.2 #include <cstdio> #include <stdint.h> #include <climits> int main() { int8_t c = 0; printf("SCHAR_MIN: %i\n", SCHAR_MIN); printf("SCHAR_MAX: %i\n", SCHAR_MAX); for (int32_t i = 0; i <= 300; i++) printf("c: %i\n", c--); printf("c: %i\n", c); return 0; } 输出量 SCHAR_MIN: -128 …

8
是否有编译器提示GCC强制分支预测始终遵循某种方式?
对于Intel体系结构,是否有一种方法可以指示GCC编译器生成代码,该代码始终在我的代码中以特定方式强制执行分支预测?英特尔硬件是否还支持此功能?那其他编译器或硬件呢? 我会在C ++代码中使用此代码,因为我知道我希望快速运行的情况,并且即使在最近采用了另一个分支的情况下,也不必关心速度的降低。 for (;;) { if (normal) { // How to tell compiler to always branch predict true value? doSomethingNormal(); } else { exceptionalCase(); } } 作为对Evdzhan Mustafa的后续问题,提示是否可以仅在处理器第一次遇到指令时指定提示,所有后续分支预测均正常运行?

11
如何修复“在C99模式之外使用的for循环初始声明” GCC错误?
我正在尝试解决3n + 1问题,并且有一个for看起来像这样的循环: for(int i = low; i <= high; ++i) { res = runalg(i); if (res > highestres) { highestres = res; } } 不幸的是,当我尝试使用GCC进行编译时,出现了此错误: 3np1.c:15:错误:“ for”循环初始声明在C99模式之外使用 我不知道什么是C99模式。有任何想法吗?
116 c  gcc  for-loop 

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.