【问题标题】:How to add files to Eclipse CDT project with CMake?如何使用 CMake 将文件添加到 Eclipse CDT 项目?
【发布时间】:2010-10-27 15:34:01
【问题描述】:

我在使用 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 命令将文件实际添加到项目中吗?

【问题讨论】:

    标签: c++ eclipse cmake


    【解决方案1】:

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

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

    它会生成 Eclipse 项目文件以及 makefile,然后在 Eclipse 中“导入项目”。

    效果很好……

    狡猾

    【讨论】:

      【解决方案2】:

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

      这是因为它会注意到是否添加或删除了新文件,因此无法弄清楚依赖关系。

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

      如果使用 glob 添加文件,则 CMake 不知道随着您添加新文件而发生的更改,因此 CMake 不知道它必须重新生成 makefile 等。这对于常规 makefile 和 Visual Studio 项目是相同的。

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

      【讨论】:

      • 我尝试添加文件,但仍然没有。我还尝试使用适用于 VS 生成器的 source_group 突击队,仍然没有
      【解决方案3】:

      我遇到的问题是我进行了“源内”构建而不是“源外”构建。现在它工作正常,实际上 Wiki 上有很多关于此的信息,但不知何故我误解了它。

      【讨论】:

        猜你喜欢
        • 2012-07-23
        • 1970-01-01
        • 1970-01-01
        • 2011-10-21
        • 2014-04-30
        • 1970-01-01
        • 1970-01-01
        • 2020-05-20
        • 1970-01-01
        相关资源
        最近更新 更多