导入CMake的项目到Eclipse CDT(Importing a CMake project i

2019-06-26 12:26发布

我有一个本地CMake的项目,我想使用Eclipse的 IDE与它这样,它使我的发展提供自动完成,并和其他功能更容易。 我似乎无法找到如何导入一个CMake的项目在Eclipse中。

PS:我打开其他的IDE与CMake的工作很好的建议。

Answer 1:

KDevelop的是一个真棒IDE以极大的CMake支持。

至于日食 - 运行以下命令:

cd <project_dir>
cmake -G "Eclipse CDT4 - Unix Makefiles" ./

这将产生Eclipse项目给你。



Answer 2:

在阐述arrowd的回答为Eclipse:

首先,选择CMake的文件的目录。 我宁愿让我的Eclipse工作区在~/workspaces ,并在源代码~/src 。 数据,我需要建立或测试项目进展项目的工作空间目录的子目录,所以我建议做了C进行相同。

假设两个工作区和源文件夹名为someproject ,这样做:

cd ~/workspaces/someproject
mkdir cmake
cd cmake
cmake -G "Eclipse CDT4 - Unix Makefiles" ~/src/someproject

然后,在你的Eclipse工作区,这样做:

文件>导入...>常规>现有项目到工作区

检查选择的根目录 ,然后选择~/workspaces/someproject/cmake 。 确保项目复制到工作区中未被选中。

单击Finish,你有你的工作空间CMake的项目。

有两点需要注意:

  • 我用cmake工作区子目录,但是你可以使用你选择的名称。
  • 如果您对您的构建配置进行任何更改(如编辑Makefile.am ),您将需要以重新运行最后一个命令为Eclipse拿起变化。


Answer 3:

我刚刚得知的CMake的CDT项目发生器似乎无人维护而造成的各种问题,尤其是,它似乎与更高版本的Eclipse(其中我有我的份额为好)。

该建议是使用cmake4eclipse(可从Eclipse的市场),它使用CMakeLists.txt作为其唯一的真理的来源。 它还可以让你保持源代码树从您的工作区分开。

  • 在Eclipse中,选择File> New> C ++项目
  • 输入项目名称,并选择您的源代码树作为项目位置的根。
  • 选择可执行文件>空项目作为项目类型,并接受默认的工具链。
  • 单击Finish,你有你的工作空间CMake的项目。


Answer 4:

我的桌面上的一个简单的解决方案:

  1. 在Eclipse中: New -> New C/C++ Project -> Empty or Existing CMake Project ,选择项目名称(如项目)。
  2. 旧目录中的所有文件复制到新的(路径到您的项目)。


Answer 5:

总之,只有在CDT发生器是目前一个可行的选择。 为什么? 很简单,因为Eclipse中必须获得预处理器定义,包括路径,包括在从某处构建哪些文件。 否则,我们将最终索引一切,得厉害,没有正确的宏被定义。 如果您在回购有提升,或中型或大型树,索引一切根本不会在现实世界中的工作 - 不与Eclipse的索引的速度和可靠性反正。 由于大多数人可能想使用忍者的建立这些天(谁愿意等待超过30秒一个温暖的构建只是为了看看有什么脏吗?),这排除了目前支持通过makefile文件导入此信息的唯一途径,除非你想有生成每次配置的时间,这将使自动化一个真正的痛苦两个单独的构建系统(因为cmake的重新运行本身,当列表改变)。

在Eclipse光子有直接导入cmake的项目一个新的选择。 然而,在这个阶段,我会说,它看起来比琐碎的项目以外的任何其他大多无用,因为似乎没有被任何方式导入已配置的build目录,或任何设置变量,并且获得通过的至理cmake的。 我还不知道这个功能的实际工作原理,但它似乎是Eclipse的,必须通过CMakeLists的层次来分析,按照逻辑看add_subdirectory()调用的是什么,并定义设置了什么样预处理,这似乎是没有前途的方法,因为我们有cmake的服务器模式正是这一点,这无疑将需要的几乎所有的在Eclipse中cmake的语言解析器的重新实施,使这项工作。

到目前为止,这似乎能满足现实世界要求的唯一可行的解​​决方案似乎是使用的cmake CDT发电机。 它可以直接从里面的cmake,得到上述信息,并将其写入到.cproject文件。 正如前面提到的,它是不是真的保持,并且依赖于对.cproject,这会导致一些问题,一个过时的模板。

对于cmake的支持我自己的最低要求是:

  • 能够导入已配置的项目。 大型建设系统通常使用脚本来众多变量传递到C进行命令行上。
  • 只有什么是构建系统的一部分应该被索引。
  • 它必须努力用的代码树的构建。
  • 必须使用预处理器定义,包括从构建系统的路径有工作的索引。
  • 必须忍者发电机工作(产生即没有makefile文件)。

我看不出做任何上述的任何东西,除了目前的CDT发电机,并实现了工作和精解的唯一途径要求要么在一些的cmake的发电机,或所产生的.cproject后处理黑客是选择什么编入索引(即不是所有CMAKE_SOURCE_DIRECTORY的)。 这是另一个黑客(因为cmake的没有任何办法以进行配置后任务连接到配置阶段,我们必须创建一个进程,并监视终止父cmake的,这是代表的cmake的慎重决定开发商显然,也许这是正确的)

我当然很感激任何更好的方法的信息。 Eclipse中的cmake支持的国家是一个应该是C ++开发工具相当惨淡。 索引器(至少当它不被需要的Eclipse重新启动定期死机的困扰),实际上是其中最好的左右,而Eclipse是围绕代码跳一个非常良好的环境。



Answer 6:

执行如下:

mkdir debug (或释放,或任何其他名称)

cd debug
cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE -DCMAKE_ECLIPSE_MAKE_ARGUMENTS=-j3 -DCMAKE_ECLIPSE_VERSION=4.1 ../

请确保您设置正确的Eclipse版本

然后打开在Eclipse(开放项目)的文件夹



文章来源: Importing a CMake project into Eclipse CDT