2012-05-16 44 views
1

我想編譯一個c文件,其中包括一個Mongo數據庫的驅動程序。我可以從Cygwin成功編譯它,但是當我轉向Netbeans時,我可以得到它。我應該提到,只有在C編譯器的附加選項中添加「-std = c99」後纔會發生這種情況。多個目標模式?

更新:
從Netbeans成功編譯它。但是「-std = c99」讓我很生氣。如果我有它,它說(每編譯後,如果我不刪除OBJ文件):

build/Debug/Cygwin_4.x-Windows/main.o.d:1: *** multiple target patterns. Stop. 

UPDATE:
main.od的內容是:

build/Debug/Cygwin_4.x-Windows/main.o: main.c \ 
c:/mongodb-driver/src/mongo.h c:/mongodb-driver/src/bson.h \ 
c:/mongodb-driver/src/platform.h 

c:/mongodb-driver/src/mongo.h: 

c:/mongodb-driver/src/bson.h: 

c:/mongodb-driver/src/platform.h: 
+1

那麼main.o.d的第一行是什麼呢? - 相關:[「多個目標模式」生成文件錯誤](http://stackoverflow.com/q/2100448/269126) – Lumi

+0

@Lumi build/Debug/Cygwin_4.x-Windows/main.o:main.c \ – Andrew

+1

在下一行? Makefile中尾隨的反斜槓表示續行。請更新您的帖子以包含所有相關詳細信息,這比在評論欄中分段投放更好。 – Lumi

回答

3

從報價現有的答案,因爲你可能有相同的問題

「我已經看到這個問題之前使用Cygwin的 - 基本上,使看到:在路徑中,並認爲這是另一個目標定義,因此錯誤

如果您使用的是Cygwin安裝,則可以嘗試替換c:/ with/cygdrive/c /。如果沒有,你可以嘗試使用相對路徑或使用網絡安裝,看看能否解決」

application fails with multiple targets from eclipse

2

從您的評論:

@Lumi我怎樣才能將其安裝到不必須每次編輯它?

修復產生main.o.d(可能很多其他.d文件)的腳本編寫相對路徑或絕對路徑是Cygwin的make瞭解。

或者,考慮是否使用MinGW代替Cygwin是您的一個選項。 (但是我有這樣的感覺,當你走上這條路時你會遇到更多問題。)

最終,爲了應對Makefiles,你需要閱讀Make的工作原理。 GNU Make has a comprehensive manual.我發現these tips非常有用。在這個階段,最適合你的可能是Scott Duckworth's Make tutorial

+0

謝謝,MinGW不是一種選擇。我已經安裝了它,但它不包含我需要的UNIX庫。 – Andrew