【问题标题】:Kdevelop and CMake cooperationKdevelop 与 CMake 合作
【发布时间】:2015-04-06 10:00:17
【问题描述】:

我想知道使用 CMake 文件有什么限制(我猜,尤其是使用子目录和/或库,以及可执行文件的位置)

(当我使用简单的 Hello 示例时,KDevelop 工作正常,我什至可以调试我的项目。当我尝试将它接近我的真实目标项目时,我编辑 CMakeList.txt 文件以在子目录中创建库,并将可执行文件移动到单独的子目录中,KDevelop 部分工作:它构建可执行文件,可执行文件在独立模式下工作,但不在 KDevelop 下,当然我无法调试。)

我猜某种可见性问题正在发生:即尽管 CMake 认为我的安排是好的(即生成正确的 Makefile 甚至可执行文件),但不知何故 KDevelop 迷路了,因为它在该位置看不到某些文件预计,它停止工作。是否有任何规则集,哪些不能在 CMake 中使用?

对于任何情况,我都会附上我的 cmake 文件(主要文件和库文件)。我做错了吗?

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(CMAKE_LEGACY_CYGWIN_WIN32 0)

project(kmanycore CXX C)

include_directories(../lib)

add_subdirectory(lib)

add_executable(../bin/kmanycore ../src/main.cpp)
add_executable(../bin/kmanycore_test ../src/main_test.cpp)

target_link_libraries(../bin/kmanycore manycore)
target_link_libraries(../bin/kmanycore_test manycore)

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(CMAKE_LEGACY_CYGWIN_WIN32 0)

add_library(manycore src/ToDo.cc)

【问题讨论】:

  • 我想这是KDevelop对CMake脚本的“理解”不可避免的局限。大多数«IDE»在“支持”构建系统方面真的很愚蠢——它们使用非常简单的“模板”,适合“HelloWorld”级别的应用程序(并迫使你在编写构建脚本时遵循一些愚蠢和隐含的规则),但不是对于“现实世界”...

标签: c++ cmake kdevelop4


【解决方案1】:

你的 CMake 文件看起来很奇怪,而且我不是 IDE。

add_executable 的第一个参数是可执行文件的名称,没有路径。它通过使用普通 Makefile 进行更改来工作。与target_link_libraries 相同。目前尚不清楚这两个项目与谁相关。通常 IDE 会跟踪单个项目;不支持交织的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多