为最简单的项目生成的EclipseCDT构建并没有正确设置include路径
Eclipse CDT build generated for simplest possible project does not set include path correctly
Eclipse:开普勒;CDT:8.3.0
我刚开始在一个C++项目中使用EclipseCDT。我只是使用UI将一个新的空C++类和相关联的头文件自动添加到项目中。然后我按下构建按钮。生成失败。Eclipse CDT生成的构建脚本失败,原因很简单,就是没有设置包含路径:
Building file: ../Foo.cpp
Invoking: Cross G++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"Foo.d" -MT"Foo.d" -o "Foo.o" "../Foo.cpp"
../Foo.cpp:8:17: fatal error: Foo.h: No such file or directory
compilation terminated.
make: *** [Foo.o] Error 1
它在子目录Debug/
中构建(这是默认的构建配置CDT设置)。如果我进入Debug/
目录,只需在上面的g++
命令中添加"-I./",它就可以工作了。Eclipse CDT创建的构建脚本找不到CDT为我初始化的源文件。为什么会失败?看起来真的很傻。我该如何修复它?
有几件事可能是原因:
- 请确保您使用的是
#include "Foo.h"
,而不是#include <Foo.h>
,引号与方括号 - 尝试像在
#include "Foo"
中那样删除.h
- 确保你的
.h
文件在src
文件夹中,而不是在它之外。因为你说过你必须将-I ../
添加到Debug
,所以这很可能是你的问题。Foo.h
文件位于项目的其余.h
文件所在的文件夹之外 - 检查Eclipse是否正在自动创建Makefile,而不希望您生成它
这很可能是错过了一些简单的东西。我在Eclipse中经常遇到这些小问题。
编辑
从你的评论来看,#1是你问题的解决方案。如果Eclipse在为类创建.h
和.cpp
时自动生成#include <Foo.h>
而不是#include "Foo.h"
,那么这就是Eclipse的一个错误。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 既然存在危险,为什么项目要使用-I include开关
- 需要帮助设置在C++中使用的Potrace
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何在自删除后将对象设置为nullptr
- 如何将更多文件夹添加到c++include路径
- 什么是"#include <boost/functional/hash.hpp> "?
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何在boost beast http请求中设置http头
- 如何设置 CMake 来构建包含路径包含的代码,如 #include < libdir/lib>?
- 您如何为Sparx企业架构师逆向工程设置 #include 路径
- 如何包含正确的:<SDL2/SDL.h> 或 <SDL.h> 并设置 -I/usr/include/SDL2?
- 为最简单的项目生成的EclipseCDT构建并没有正确设置include路径
- 将目录的include顺序设置为gcc中的最后一个
- 尽管路径设置正确,但错误"C1083 cannot open include file gecode/int.hh"