gpt4 book ai didi

c - 使用 C99 的 Netbeans C GCC

转载 作者:行者123 更新时间:2023-11-30 15:31:07 25 4
gpt4 key购买 nike

我转到 Netbeans > Preferences > C/C++ > Build Tools 并将我的 C Comiler:usr/bin/gcc 更改为usr/bin/c99 这样我就可以在第一次遇到 for 循环时在 for 循环中声明一个局部变量。

我仍然收到错误...

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/barchart
mkdir -p build/Debug/GNU-MacOSX
rm -f "build/Debug/GNU-MacOSX/main.o.d"
c99 -c -g -MMD -MP -MF "build/Debug/GNU-MacOSX/main.o.d" -o build/Debug/GNU-MacOSX/main.o main.c
c99: illegal option -- M
usage: c99 [-cEgs] [-D name[=value]] [-I directory] ... [-L directory] ...
[-o outfile] [-O optlevel] [-U name]... [-W 64] operand ...
make[2]: *** [build/Debug/GNU-MacOSX/main.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 432ms)

我知道我的代码没有搞砸,因为它只是主程序中的一个简单的 for 循环:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {
for (int i = 0; i < 42; i++) {
printf("%d\n", i);
}

return (0);
}

我读过有关堆栈溢出的问题,人们反复询问如何做到这一点。大多数人的回应是“将 -std=c99 添加到命令行”。 Netbeans 允许您在 C Build Tools 菜单中执行此操作,但它对我不起作用。 (在此之前我尝试更改我的 MakeFile,但这也不起作用)。我最终尝试按照上面所述更改我的 C 解释器,使其指向 C99 C 解释器,但这也不起作用。

这应该不难。是否有任何人都发现有效的解决方案(至少在 Netbeans 中)?

注意:

我通过使用 CLang 解决了这个问题(我什至不知道我有)。我不知道它与 GCC 相比性能如何,但我确实知道它(希望)使用 C99。它仍然位于相同的目标目录 (/usr/bin/) 中,因此 /usr/bin/CLang 指向 CLang 编译器...而 /usr/bin/CLang++ 是 - 你猜对了 - C++。如果我对 CLang 有任何问题,我可能会在下面发布,以便人们可以确定他们是否想要使用它,但乍一看... 我可以在 for 循环中使用局部变量;耶!

但是,从我刚刚读到的内容来看,GCC 与更多编程平台(C/C++、java 等)兼容,但 CLang 更快并且使用更少的内存:我从 here 得到这个

最佳答案

您可以像这样设置 C 标准:

打开项目属性 -> 构建 -> C 编译器 -> C 标准 并在那里设置 C99

C 标准 应包含当前 NetBeans/编译器上的 Standard、C89、C99 和 C11。

不要更改编译器!

关于c - 使用 C99 的 Netbeans C GCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com