Eclipse - "这个项目不是CDT项目"

Tob*_*oby 13 c eclipse project

我有现有的C代码和现有的Makefile,我想将其包装到Eclipse C-Project中(使用Eclipse 3.4 Ganymede).该守则的组织方式如下:

主目录: /Project/Software

源码和头文件:../Project/Software/CodeDir1 ../Project/Software/CodeDir2等等..

到目前为止,我一直在做这些步骤:

  1. 将Eclipse workapce设置为/ Project /
  2. 使用名称创建新的C-Project Software- > Now Eclipse将所有Source文件等集成到Project中
  3. 转到属性 - > C/C++ Build并设置为"Custom Build options"

我第一次这样做,一切正常.我把输出到我的控制台,一切都很酷.但随后"Build Icon"(小锤子)变灰了,我再也无法点击它了.如果我现在转到项目属性 - > C/C++ Build它只是说"这个项目不是CDT项目",而且我得到一个带有"java.lang.NullPointerException"的错误.

我怎样才能获得一个有效的项目?

编辑:

为了避免一个简单的错误,我尝试使用新版本的Eclipse(Kepler).我得到相同的错误("没有CDT项目"),但没有Null指针异常.

但我可以稍微缩小一下这个问题:一次开始制作过程时,它始终有效.如果构建过程失败,我仍然可以转到我的构建属性.只要我完成一个完整且无错误的构建运行,就会出现此问题.关于这一点,它只发生在我的make调用是从Eclipse完成的.如果我从命令行调用它,我仍然可以从eclipse中运行一个.

mir*_*ams 27

如果要导入现有CDT项目并看到"此项目不是CDT项目",则可能是项目是在较旧版本的Eclipse上创建的,您需要:

  • Project Explorer选项卡中选择项目,
  • 单击文件 - >新建 - >转换为C/C++项目

这将添加一个新.cproject文件,然后您就可以开始了.


Tob*_*oby 0

问题的根源不在 Eclipse 中,而是在 makefile 中。

整个Project的目录结构如下:

Project_Dir\Documentation\
Project_Dir\Output\
Project_Dir\Software\
Project_Dir\Tools\
Run Code Online (Sandbox Code Playgroud)

源文件都位于该\Software\目录中。所以我选择Project_Dir\Software\作为项目文件夹,这意味着.project.cproject文件位于此处。

makefile 本身也临时将输出文件写入该\Software\文件夹中。最后它将所有文件从Software目录复制到Output (实际上是一个move *.* Project_Dir\Output\命令)

该命令还会移动 Eclipse 项目文件,从而使 Eclipse 很难找到它们并打开项目属性。

两种解决方案:

  1. 将 eclipse 中的项目目录更改为\Project_Dir\因为它都是与项目相关的东西
  2. 在 makefile 中添加两行:移动命令之前:attrib +r +s *.projectattrib -r -s *.project移动命令之后。(同样.cproject)。这可以防止 makefile 移动文件