0

我想知道使用 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)
4

1 回答 1

0

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

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

于 2016-01-01T11:53:03.817 回答