我有一個使用makefile構建的C項目,Eclipse經常警告「無效的項目路徑:重複的路徑條目」,但我無法弄清楚它到底希望我做什麼。我想禁用此警告並繼續我的生活。Eclipse CDT無效的項目路徑
我的應用程序編譯和運行良好,沒有一個警告,除了這一個。作爲一名認真的開發人員,我熱衷於解決這個問題,所以我只有一個乾淨的構建可以帶來溫暖的模糊。
我有一個使用makefile構建的C項目,Eclipse經常警告「無效的項目路徑:重複的路徑條目」,但我無法弄清楚它到底希望我做什麼。我想禁用此警告並繼續我的生活。Eclipse CDT無效的項目路徑
我的應用程序編譯和運行良好,沒有一個警告,除了這一個。作爲一名認真的開發人員,我熱衷於解決這個問題,所以我只有一個乾淨的構建可以帶來溫暖的模糊。
這爲我工作與Eclipse 3.7.2和8.0.2 CDT:
它似乎是CDT 8中的一項新功能。多年來,我有過這種「無效項目路徑:重複路徑條目」的問題,這顯然是新提供的解決方案。
在執行此操作之前,在C/C++常規|路徑和符號|包含選項卡。我無法擺脫這些。它們僅在Show內置值被選中時出現,所以它們顯然是以某種方式生成的。完成上述操作後,它們被替換爲沒有重複的集合。唯一的區別是在Assembly,GNU C和GNU C++下出現了相同的設置。以前他們是不同的集合。例如,Assembly的那些是空的。
到目前爲止問題還沒有返回。
這似乎是CDT中的一個錯誤。
如果你真的想擺脫它,你應該嘗試擺脫項目路徑中的空間;這是在錯誤的搜索結果中建議的。如果這不起作用,您可以嘗試打開.cproject文件 - 這是所有CDT設置所在的位置,並檢查包含重複條目的實際路徑。
這個問題是一個真正的痛苦處理。它不能很好地工作。
這是適用於Eclipse的3.4.1/5.0.1 CDT
從我可以告訴,當你創建一個「C/C++項目」中的CDT,它會嘗試自動檢測您的include路徑。好主意,但實施是可怕的。
如果您刪除或重命名一個目錄,舊的目錄是剩餘的。如果您重命名該項目,舊的目錄是剩餘的。當Eclipse找不到那個舊目錄時,它會給你提示。
我的解決方案是完全關閉自動發現並手動管理我的包含路徑。你需要包含這些包含路徑的列表,例如ctrl-click(自動導航到定義/ functions/files/etc)以及遮蔽#define塊。它從這個列表中建立索引。
以下是您需要做的事情: 在項目瀏覽器中右鍵單擊您的項目並轉至屬性。 轉到C/C++編譯 - >查找選項 取消選中「自動路徑和符號的發現」
現在去C/C++常規 - >路徑和符號 你會看到下包括片組件,C和C++語言具有相應的自動發現包含目錄。 轉到所有3種語言並刪除所有內容。 打開你的makefile並將你的包含轉錄成相應的語言。 項目重命名仍然會導致索引器中斷。 $ {project_name}和其他全局變量似乎不起作用。如果遇到問題,請使用「工作區」按鈕瀏覽到您想要包含的目錄,因爲這似乎始終有效,但手動輸入不會。 點擊應用,然後確定。 右鍵點擊你的項目,進入index-> rebuild 重新啓動eclipse。
這應該永遠解決問題。任何時候,由於#define或#ifdef塊的原因,不正確的內容會被遮蓋,這是因爲該文件列表已過時。如果您在#include行中收到「未解決的內容」,您也會知道該列表已過時。
Doug Schaefer,希望谷歌可以索引這個,找到你的名字,然後你解決這個糟糕的實現。 =)
就像更新一樣,您可以使用$ {ProjName}變量代替實際的項目名稱,並且它將通過項目重命名持續。 – 2009-08-03 18:07:28
我發現這個錯誤報告來幫助我的問題。我移動了一些包含路徑,無法擺脫舊路徑。
我也看到過這個問題,老路徑 永遠不會被刪除。要手動修復 文件,你需要移動/刪除 $ {}項目名稱下.SC $ {}工作區/。元/ .plugins/org.eclipse.cdt.make.core
您應該檢查您是否已經手動定義了日食可以從您的makefile中找出的符號。我有一個有手動編寫的makefile的項目,通過刪除手動添加到C/C++常規 - >路徑和符號 - >符號中的符號解決了問題。
沒有需要去除.metadata
傢伙,只是刪除位於C中的所有路徑/ C++通用 - >路徑和符號 - >符號和替換它們使用點擊BUTTOM但沒有手動給路徑
在這裏,我剛發現另一種方式來重新檢測自動的路徑:
希望這會有所幫助。
參考: http://qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html
這裏是爲Eclipse 4.4遲到的回答(這不具有發現選項)。
刪除項目的infoPath
文件。Eclipse或ADT插件(不知道哪個)會重新創建它,並使用正確的路徑填充它。
您可以在<Eclipse workspace>/.metadata/.plugins/com.android.ide.eclipse.ndk/<project>.pathInfo
找到該項目的infoPath
文件。 Eclipse或ADT插件從兩個地方確定新路徑:(1)在Eclipse偏好設置下設置的NDK目錄;(2)在Application.mk
中設置路徑。所有這些路徑都成爲Eclipse下的「內置」路徑。
另見How to change built-in C/C++ paths pointing to a deleted android-ndk-r9 installation?
使用Eclipse露娜和CDT 8.5
我通過
如果您使用的是Eclipse 3.7/CDT 8,請查看Kenneth Evans的答案。我還沒有測試過,但它看起來不錯,如果它適合你,請留下評論。 – 2012-06-05 19:16:58
經過測試,似乎正在工作。它應該是被接受的答案,恕我直言。 – ysap 2012-08-28 20:08:50