Tag: gcc

然而另一个MinGW“gcc:错误:CreateProcess:没有这样的文件或目录”

我已经通过GUI安装程序在Windows 8(64位)中安装了MinGW C编译器。 但是当我尝试编译C程序时,gcc说: gcc:CreateProcess:没有这样的文件或目录 这是一个常见的错误,我尝试了所有解决方案,但没有成功。 特别是,(在CreateProcess之后:没有这样的文件或目录 )我试过: [已编辑]将C:\ MinGw \ libexec \ gcc \ mingw32 \ 4.7.2添加到我的系统PATH 通过mingw-get CLI卸载并重新安装gcc: mingw-get删除mingw32-gcc mingw-get install mingw32-gcc 其他建议? 编辑:详细的gcc输出: > gcc -v helloWorld.c Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.7.2/lto- wrapper.exe Target: mingw32 Configured with: ../gcc-4.7.2/configure –enable-languages=c,c++,ada,fortran,obj c,obj-c++ –disable-sjlj-exceptions –with-dwarf2 –enable-shared –enable-libgo mp –disable-win32-registry –enable-libstdcxx-debug –disable-build-poststage1- with-cxx –enable-version-specific-runtime-libs –build=mingw32 –prefix=/mingw […]

为什么GCC __builtin_prefetch不能提高性能?

我正在编写一个程序来分析社交网络图。 这意味着程序需要大量的随机内存访问。 在我看来,预取应该有所帮助。 这是从顶点的邻居读取值的一小段代码。 for (size_t i = 0; i < v.get_num_edges(); i++) { unsigned int id = v.neighbors[i]; res += neigh_vals[id]; } 我将上面的代码转换为下面的代码,并预取顶点的邻居值。 int *neigh_vals = new int[num_vertices]; for (size_t i = 0; i < v.get_num_edges(); i += 128) { size_t this_end = std::min(v.get_num_edges(), i + 128); for (size_t j = i; j < […]

为什么不能使静态数组的大小变量?

可能重复: 我们可以给静态数组的大小一个变量 我在其中一个子文件中定义一个数组,如下所示。 static int arr[siz]; 这里siz是子文件可用的全局变量。 但是gcc编译器会产生以下错误: : : error : storage size of ‘arr’ isn’t constant 为什么我不能定义可变大小的static数组? 编辑:这似乎只是static int类型的问题。 如果我将arr的变量类型从static int更改为int ,则即使数组的大小仍依赖于变量siz ,错误也会消失。

如何在Linux中打印C中毫秒和纳秒精度的时差?

我有这个程序打印2个不同实例之间的时差,但它打印精度为秒。 我希望以毫秒为单位打印它,另一个以纳秒为单位进行打印。 //Prints in accuracy of seconds #include #include int main(void) { time_t now, later; double seconds; time(&now); sleep(2); time(&later); seconds = difftime(later, now); printf(“%.f seconds difference”, seconds); } 我怎么能做到这一点?

创建使用getaddrinfo的静态链接二进制文件?

我已经包含了头文件netdb.h ,其中包含了getaddrinfo ,但是gcc发出了这个警告: warning: Using ‘getaddrinfo’ in statically linked applications requires at runtime the shared libraries from the glibc version used for linking gcc -m32 -static -s -O2 -std=c99 -D_POSIX_C_SOURCE=200112L myprogram.c 如何静态编译丢失的文件? 可能的解决方案: 可能是glibc安装缺少静态编译所需的相应目标文件。 如果是这种情况,请创建相应的目标文件并在编译时链接它。 尝试EGLIBC而不是glibc。 我成功地用dietlibc编译了我的程序,它编译时没有任何错误加上得到的二进制文件比glibc制作的要小得多。

GCC中的C11 ?

我正在尝试使用thread.h编译一些C11代码,但我不能。 我已经重新编译了GCC(现在运行4.6.2),我正在尝试使用gcc -std=c1x file.c -o file进行编译。 我可以用g ++(使用thread库)来做到这一点,但我不能在C中。是否thread.h没有包含在GCC发行版中的thread.h ?

融合乘法加法和默认舍入模式

使用GCC 5.3,以下代码包含-O3 -fma float mul_add(float a, float b, float c) { return a*b + c; } 生成以下程序集 vfmadd132ss %xmm1, %xmm2, %xmm0 ret 我注意到GCC已经在GCC 4.8中使用了-O3 。 Clang 3.7与-O3 -mfma产生 vmulss %xmm1, %xmm0, %xmm0 vaddss %xmm2, %xmm0, %xmm0 retq 但是Clang 3.7和-Ofast -mfma产生的代码与GCC相同, -O3 fast为-O3 fast 。 我很惊讶GCC使用-O3因为从这个答案来看 除非允许放宽的浮点模型,否则不允许编译器融合分离的加法和乘法。 这是因为FMA只有一个舍入,而ADD + MUL有两个舍入。 因此,编译器将通过融合违反严格的IEEE浮点行为。 但是,从这个链接说 无论FLT_EVAL_METHOD的值如何,任何浮点表达式都可以收缩,即,计算好像所有中间结果都具有无限范围和精度。 所以现在我感到困惑和担忧。 GCC是否有理由将-FMA与-O3一起使用? 融合是否违反了严格的IEEE浮点行为? […]

如何用Sublime Text 2编译和运行一个简单的C程序?

我想用GCC编译一个简单的C程序。 我需要在sublime-build文件中放入什么呢?

在Mac OS X 10.11上安装OpenMP

如何让OpenMP在Mac OSX 10.11上运行,以便我可以通过终端执行脚本? 我已经安装了OpenMP: brew install clang-omp 。 当我运行时,例如: gcc -fopenmp -o Parallel.b Parallel.c以下表达式返回: fatal error: ‘omp.h’ file not found 我也尝试过: brew install gcc –without-multilib但不幸的是,这最终返回了以下内容(在首次安装一些依赖项之后): The requested URL returned error: 404 Not Found Error: Failed to download resource “mpfr–patch” 任何推荐的工作?

我可以让GCC警告将过多的类型传递给函数吗?

以下是一些明显有缺陷的代码,我认为编译器应该发出诊断信息。 但是gcc和g++都没有,即使有我能想到的所有警告选项: -pedantic -Wall -Wextra #include short f(short x) { return x; } int main() { long x = 0x10000007; /* bigger than short */ printf(“%d\n”, f(x)); /* hoping for a warning here */ return 0; } 有没有办法让gcc和g++对此发出警告? 另外,您是否有另一个编译器在默认情况下或在相当常见的额外警告配置中对此进行警告? 注意:我正在使用GCC(C和C ++编译器)版本4.2.4。 编辑:我刚刚发现gcc -Wconversion可以解决这个问题,但g++的相同选项却没有,我在这里真的使用C ++,所以我需要一个g++解决方案(我现在想知道为什么-Wconversion没有似乎是这样)。 编辑: http : //gcc.gnu.org/bugzilla/show_bug.cgi? id = 34389建议这可以在g++ 4.4修复……也许? 我还不清楚它是否是同一个问题和/或修复是否真的出现在那个版本中。 也许有4.3或4.4的人可以试试我的测试用例。