Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cmake项目的eclipse索引器问题_Cmake_Eclipse Cdt - Fatal编程技术网

cmake项目的eclipse索引器问题

cmake项目的eclipse索引器问题,cmake,eclipse-cdt,Cmake,Eclipse Cdt,我已经用cmake创建了eclipse项目。我使用vtk和qt。目录结构如下: parent_dir: source - source.h, source.cpp build - this is where the .project resides 我已经用workspace dir/path/parent启动了eclipse 我已按照中描述的说明进行操作 . 一切都很好,但导航不起作用。也就是说,eclipse警告我source.h尚未编制索引 此外,自动完成不适用于qt和v

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

parent_dir:
    source - source.h, source.cpp
    build - this is where the .project resides
我已经用workspace dir/path/parent启动了eclipse

我已按照中描述的说明进行操作 . 一切都很好,但导航不起作用。也就是说,eclipse警告我source.h尚未编制索引

此外,自动完成不适用于qt和vtk相关的类。我已经检查了Project | Properties,其中包括qt和vtk。我做错了什么?我真的很想让eclipse中的自动完成和导航与我的项目一起工作。我在ubuntu 8.04 64位上使用eclipse ganymede


thx提前

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

如果发生以下情况,则不会创建此链接资源 生成目录是一个子目录 源目录的错误,因为 Eclipse不允许加载项目 哪些有链接的资源指向 到父目录。所以我们建议 要创建生成目录,请执行以下操作: 作为孩子,但作为兄弟姐妹 源目录

您需要执行以下操作:

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

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

所以在我的例子中,我有“dir/tree/project_dir”和“dir/tree/project_dir/src”,然后我应该创建构建目录“dir/tree/build_dir”

然后,我创建了一个小脚本,用于创建调试和发布项目:

#!/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文件