2

我已经用 cmake 创建了 eclipse 项目。我将 vtk 与 qt 一起使用。目录结构如下:

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

我已经使用工作区目录/path/parent启动了 Eclipse 。

我已按照 http://www.cmake.org/Wiki/Eclipse_CDT4_Generator中描述的说明进行操作。一切正常,但导航不起作用。也就是说,日食给了我source.h还没有被索引的警告。

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

提前谢谢

4

2 回答 2

3

根据 Wiki,您应该将构建树放在源代码树之外。

如果构建目录是源目录的子目录,则不会创建此链接资源,因为 Eclipse 不允许加载链接资源指向父目录的项目。因此,我们建议不要将构建目录创建为子目录,而是作为源目录的同级目录。

你需要做这样的事情:

mkdir /home/user/parent_dir_build
cd  /home/user/parent_dir_build
cmake /home/user/parent_dir
于 2009-03-31T13:32:03.710 回答
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 Assist(代码完成),以及通过双击错误进行快速调试。

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

于 2011-03-02T12:13:47.590 回答