使用cmake项目的eclipse索引器问题

时间:2009-03-31 13:07:07

标签: cmake eclipse-cdt

我用cmake创建了eclipse项目。我用qt的vtk。 Dir结构如下:

parent_dir:
    source - source.h, source.cpp
    build - this is where the .project resides

我用工作区目录 / path / parent 启动了日食。

我已按照中所述的说明操作 http://www.cmake.org/Wiki/Eclipse_CDT4_Generator。 一切都很好,但导航不起作用。也就是说,eclipse向我发出警告,指出 source.h 尚未编入索引。

此外,自动完成功能不适用于qt和vtk相关的类。我查看了Project | Properties,其中包含了qt和vtk。我究竟做错了什么?我真的希望在eclipse中使用我的项目进行自动完成和导航。我在ubuntu 8.04 64位上使用eclipse ganymede。

事先提前

2 个答案:

答案 0 :(得分:2)

根据Wiki,你应该在源代码树之外拥有你的构建树。

  

如果是,则不会创建此链接资源   构建目录是一个子目录   因为源目录   Eclipse不允许加载项目   哪些链接资源指向   到父目录。所以我们建议   不创建您的构建目录   作为孩子,但作为兄弟姐妹   源目录。

你需要做这样的事情:

mkdir /home/user/parent_dir_build
cd  /home/user/parent_dir_build
cmake /home/user/parent_dir

答案 1 :(得分:2)

我花了很长时间才弄明白。 您应该确保“Build”目录确实不是项目目录的一部分,这意味着,包含“CMakeLists.txt”的最高级目录。

所以在我的情况下,我有“dir / tree / project_dir”和“dir / tree / project_dir / src”,然后我应该创建构建目录“dir / tree / build_dir”。

然后,我创建了一个创建Debug和Release项目的小脚本:

#!/bin/sh
mkdir -p $1_build/Release
mkdir -p $1_build/Debug
cmake -E chdir $1_build/Release cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../../$1
cmake -E chdir $1_build/Debug cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../../$1

使用参数“project_dir”从“dir / tree”调用脚本。

然后,在Eclipse中,单击“文件” - > “导入” - > “一般” - > “现有项目进入工作区”。 指定目录“dir / tree / $ 1_build”,它将自动识别两个项目。

现在,Release和Debug项目都加载到Eclipse中,你可以使用Code Assiste(代码完成)等所有不错的选项,并通过双击错误进行快速调试。

请注意,您可以在Eclipse中添加一些文件过滤器,以从项目树中删除CMake文件。