将c ++ Makefile项目导入Eclipse后,我的项目依赖于位于 /usr/include/gazebo-2.2/gazebo 中的一些库。
这些包含在 #include<行中。凉亭/ XX / xx.hh> 即可。 CMake没有找到文件的问题,Eclipse不幸的是......
在我的include文件夹中,文件夹 / usr / include / 被设置为包含路径。但是它无法找到包含文件。
eclipse是否有可能发现文件没有添加包含目录的完整路径?
答案 0 :(得分:1)
eclipse是否可以在不添加包含目录的完整路径的情况下发现文件?
不,除非相关的包含路径是编译器的默认包含之一 路径,在你的情况下不是这样。
如果您希望编译器找到例如
所引用的头文件<gazebo/xx/xx.hh>
所需文件为:
/usr/include/gazebo-2.2/gazebo/xx/xx.h
然后必须为编译器提供包含路径:
/usr/include/gazebo-2.2
应该出现在构建日志中的编译器命令行中:
-I/usr/include/gazebo-2.2
我还注意到你的例子实际上是:
#include < gazebo/xx/xx.hh>
不
#include <gazebo/xx/xx.hh>
在您的示例中,前导空格将被视为其中的一部分 找不到文件名和标题。
答案 1 :(得分:1)
eclipse是否可以在不添加包含目录的完整路径的情况下发现文件?
由于您正在使用Makefile项目,因此可能您的makefile指定了相关的包含路径。 Eclipse可以使用其Build Output Parser来解决这个问题。设置它的一般方法是:
gcc -I /usr/include/gazebo-2.2 ...
- 因为这是构建输出解析器需要查看的内容),或者可以配置为生成该输出。为了完整性,既然你提到了CMake,我会提到还有一些插件可以直接根据CMakeLists.txt配置项目的包含路径。 (我不能推荐一个特定的,因为我自己不使用CMake,但在Eclipse Marketplace中搜索“CMake”应该会给你几个选项。)