在將一個C++ Makefile項目導入Eclipse後,我的項目依賴於位於/usr/include/gazebo-2.2/gazebo中的一些庫。Eclipse無法在子目錄中找到包含文件
這些包括在線#include < gazebo/xx/xx.hh>。 CMake沒有找到文件的問題,不幸的是,Eclipse不會...
在我的包含文件夾中,文件夾/usr/include/被設置爲包含路徑。但是它找不到包含文件。
eclipse是否可以發現文件沒有添加包含目錄的完整路徑?
在將一個C++ Makefile項目導入Eclipse後,我的項目依賴於位於/usr/include/gazebo-2.2/gazebo中的一些庫。Eclipse無法在子目錄中找到包含文件
這些包括在線#include < gazebo/xx/xx.hh>。 CMake沒有找到文件的問題,不幸的是,Eclipse不會...
在我的包含文件夾中,文件夾/usr/include/被設置爲包含路徑。但是它找不到包含文件。
eclipse是否可以發現文件沒有添加包含目錄的完整路徑?
eclipse是否可以在不添加包含目錄的完整路徑的情況下發現文件?
不,除非有問題的包含路徑是編譯器的默認路徑之一,包括 路徑,這不是你的情況。
如果您希望編譯器查找由例如引用的頭文件,
<gazebo/xx/xx.hh>
時所需要的文件是:
/usr/include/gazebo-2.2/gazebo/xx/xx.h
那麼編譯器必須給予包括路徑:
/usr/include/gazebo-2.2
應該在你構建日誌出現在編譯器COMMANDLINES爲:
-I/usr/include/gazebo-2.2
我還要注意您的例子其實是:
#include < gazebo/xx/xx.hh>
不是:
#include <gazebo/xx/xx.hh>
在你的榜樣,領先的空間將被視爲 文件名的一部分,頭也不會被發現。
eclipse是否可以在不添加包含目錄的完整路徑的情況下發現文件?
由於您使用的是Makefile項目,因此您的makefile可能會指定相關的包含路徑。 Eclipse可以使用它的Build Output Parser來選擇它。設置此的一般方法是:
gcc -I /usr/include/gazebo-2.2 ...
- 因爲這是構建輸出解析器需要看到的),或者可以配置以產生該產出。爲了完整起見,自從您提到CMake以來,我會提到還有一些插件會根據CMakeLists.txt直接配置項目的include路徑。 (我不能推薦一個具體的,因爲我自己不使用CMake,但在Eclipse Marketplace中搜索「CMake」應該給你幾個選項。)