如何使用CMake将文件添加到Eclipse CDT项目?

时间:2009-05-20 14:01:06

标签: c++ eclipse cmake

我在使用CMake将源文件和头文件添加到我的Eclipse CDT项目时遇到问题。在我的测试项目中(生成并构建正常)我有以下CMakeLists.txt:

cmake_minimum_required(VERSION 2.6)

project(WINCA)

file(GLOB WINCA_SRC_BASE "${WINCA_SOURCE_DIR}/src/*.cpp")
file(GLOB WINCA_SRC_HPP_BASE "${WINCA_SOURCE_DIR}/inc/*.hpp")

add_library(WINCABase ${WINCA_SRC_BASE} ${WINCA_SRC_HPP_BASE})

这很好但是生成的Eclipse项目文件不包含指向源文件或头文件的链接。谁知道为什么?是否还有其他cmake命令用于将文件实际添加到项目中?

3 个答案:

答案 0 :(得分:5)

我意识到你发布这个已经有一段时间了,但是fwiw,它对我来说很适合CMake 2.6或2.7(主干)版本,为Eclipse / Ganymede生成。我做的是先运行

cmake -G "Eclipse CDT4 - Unix Makefiles" /path/to/src

生成Eclipse项目文件以及makefile,然后生成Eclipse中的“Import Project”。

工作得很漂亮......

狡猾

答案 1 :(得分:3)

我使用的是CMake 2.4,而不是2.6,但在2.4中他们特别警告不要使用GLOB来查找要构建的文件。

这是因为它会注意到是否添加或删除了新文件,因此无法找出依赖项。

如果必须将文件显式添加到CMakeLists.txt,则此文件将比makefile和缓存文件更新。所以CMake会知道重新生成它们。

如果使用glob添加文件没有文件CMake知道更改,则添加新文件,因此CMake不知道必须重新生成makefile等。对于常规makefile和Visual Studio项目,这是相同的。 / p>

除非CMake 2.6文档明确表示可以添加这样的文件,否则我会避免使用它。在cmake中管理源文件并不难。您多久添加一次新文件?

答案 2 :(得分:1)

我遇到的问题是我做了一个“in-source”构建而不是“out-of-source”构建。现在它工作正常,在Wiki上实际上有很多信息,但不知怎的,我误解了它。