[英]Netbeans C GCC using C99
我去了Netbeans > Preferences > C/C++ > Build Tools
然后將C Comiler:
更改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)
我知道我的代碼沒有搞砸,因為它只是main中的一個簡單的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);
}
我已經閱讀了有關堆棧溢出的問題,人們反復問過如何做到這一點。 大多數響應是通過說"Add -std=c99 to your command line"
響應的。 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更快並且使用的內存更少:我是從這里得到的
您可以這樣設置C標准:
打開project properties -> Build -> C Compiler -> C Standard
然后在此處設置C99
。
C Standard
在當前的NetBeans /編譯器上應包含Standard,C89,C99和C11。
不要更改編譯器!
轉到項目屬性,然后依次選擇生成-> C編譯器->其他選項,然后添加-std = c99。 像這樣:
您的編譯器應仍為/ usr / bin / gcc(希望您有一個足夠新的版本!)。
抱歉; 我知道我正在回答自己的問題,但是我認為這是有效的,因為我在Mac OS X上使用Clang對其進行了設置,但是我無法在Windows上復制它,並且我仍然無法使-std=c99
正常工作。 所以,這是我的解決方案。
.c
文件可以在任何正確配置的C ++解釋器中運行。 因此,為了允許C99實現,您可以簡單地創建“ C”編譯器的路徑,即C ++編譯器的路徑。
例如,使用g++
而不是gcc
。 如果您使用的是Netbeans 8.0,只需轉到options (windows)/preferences (mac) > C/C++ > Build Tools
然后將gcc
的cc
更改為++
。
完成。 至少對我有用。
但是,如果執行此操作,則可能應該只創建一個.cpp
文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.