2010-09-15 96 views
17

我剛剛爲Windows下載了Eclipse CDT開發人員工具包(87MB)。我還安裝了MinGW和msys。 我也將此添加到路徑:C:\ msys \ 1.0 \ bin; C:\ mingw \ bin。然後重啓電腦。我已經通過在cmd中輸入「make --version」進行檢查,它可以工作。使:***沒有規則,使目標「全部」。停止。 Eclipse錯誤

但是,出於某種原因,我無法編譯我的C項目。我沒有得到二進制文件,只在COnsole中得到以下東西:

**** Build of configuration Default for project XXX **** 

make all 
make: *** No rule to make target `all'. Stop. 

請問有人能幫我解決這個問題嗎?

+0

我有同樣的錯誤你能告訴我如何解決這個錯誤。 – 2013-07-25 11:52:03

+0

@SamadhanMedge底部的最後一個答案是我如何修復它。說實話,我不記得任何細節比這更好。希望你找到了解決問題的方法。 – chepukha 2013-07-30 06:29:01

+0

感謝您的回覆,我通過twokats解決了錯誤。 – 2013-07-30 06:52:16

回答

2

我在這個錯誤上花了很多時間,現在意識到那些未編譯的項目是在我安裝MinGW和msys之前創建的,所以之前沒有makefile。並且沒有包含鏈接到makefile的文件夾。這就是我無法編譯它的原因。現在,當我創建新項目時,沒關係。

但是,我想知道是否有任何方法爲以前的項目添加makefile的路徑?

謝謝

+0

謝謝,是的,我個人總是在CDT(或其他IDE)之前安裝MinGW,以便他們可以在安裝時自行配置(即自動查找MinGW)。 – 2014-02-28 02:42:59

6

僅供您參考,有一種方法可以配置CDT構建選項。我有同樣的錯誤信息(雖然我確實有一個make目標 - 只是沒有命名爲「所有」),並發現該解決方案(伽利略+ CDT):

右鍵點擊你的項目,然後選擇屬性。 Properties對話框將出現,您應該看到一個C/C++ Build選項,您可以在其中設置特定的構建選項。突出顯示此項目,將出現「屬性」頁面。選擇您想要修改的配置,然後在下面的部分中您應該看到2個選項卡:Builder設置行爲。這是您想要的行爲選項卡。在本節中,您可以設置構建設置和工作臺設置的首選項,包括指定目標名稱(默認爲「全部」)或關閉自動構建。

當我開始使用CDT時,這對我非常有幫助。我的源代碼與構建區域是分開的,在配置之前,不存在任何makefile。當我配置時,我的默認目標名稱顯式爲「默認」,而不是「全部」。在我做任何事情之前讓Eclipse在我的項目中報告錯誤令人討厭。建立環境以配合我的發展創造了奇蹟。 HTH。

2

你應該看看你的makefile(或者創建一個如果缺失)。這是缺省的Makefile:

CXXFLAGS = -O2 -g -Wall -fmessage-length=0 
OBJS =  main.cpp 
LIBS = 
TARGET =  main.exe 

$(TARGET): $(OBJS) 
    $(CXX) -o $(TARGET) $(OBJS) $(LIBS) 
all: $(TARGET) 
clean: 
    rm -f $(OBJS) $(TARGET) 
+0

感謝您的幫助。我已經修復了它,但現在不記得它是如何修復的 – chepukha 2010-12-16 20:24:16

10

以供將來參考,如果你想導入現有的項目有一個makefile ...

此消息仍然會彈出,如果你的makefile沒有一個「全部」規則。使用「自動生成Makefile」選項應自動處理。如果你不想爲你做的makefile,你至少有3個簡單的選項...

選項1

如果不想該名稱,使用使用規則兩個人的解決方案。這是一個澄清。

  1. 轉至項目屬性 - > C/C++構建 - >行爲選項卡。
  2. 離開生成(增量生成)檢查。
  3. 從Build(增量構建)旁邊的文本框中刪除「all」。

這讓Eclipse知道你不是在試圖使用一個名爲「all」的make目標。出於某種原因,這是默認設置。

選項2

使用一些類似Etiennebr的Makefile。請注意,all: $(TARGET)行是Eclipse抱怨它無法找到的規則。

選項3

替代「所有」與您選擇的規則名稱,並確保在您的生成文件的規則。

5

右鍵單擊項目Properties-> C/C++ Build,在「Builder Settings」中勾選「Generate Makefiles automatically」選項,然後選擇「Builder type」選項爲「Internal builder」,然後點擊確定,問題解決了!

相關問題