簡體   English   中英

使用C99的Netbeans C GCC

[英]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。 像這樣:

-std = c99的NetBeans項目屬性

您的編譯器應仍為/ 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然后將gcccc更改為++

完成。 至少對我有用。

但是,如果執行此操作,則可能應該只創建一個.cpp文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM