2015-04-06 63 views
0

我不知道什麼是使用CMake的文件的限制(我猜的,尤其是使用子目錄和/或庫,以及可執行文件的位置)的KDevelop和CMake的合作

(當我用瑣碎的Hello示例,Kdevelop可以很好地工作,我甚至可以調試我的項目,當我試圖將它接近我的真實目標項目時,我編輯CMakeList.txt文件以在子目錄中創建庫,並將可執行文件移動到一個單獨的子目錄中,KDevelop獲取部分工作:它構建可執行文件,可執行文件在獨立模式下工作,但不在KDevelop下工作,當然我不能調試。)

我想某種可見性問題會發生g:即,雖然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) 
+0

我猜想KDevelop在其對CMake腳本的「理解」中有不可避免的侷限性。大多數「IDE」在「支持」構建系統中確實很愚蠢 - 它們使用非常簡單的「模板」,它適用於「HelloWorld」級別的應用程序(並強制您在編寫構建腳本時遵循一些愚蠢和隱含的規則),但不能對於「真實世界」... – zaufi 2015-04-09 14:13:51

回答

0

你的CMake文件看起來古怪,和我不是一個IDE。

add_executable的第一個參數是可執行文件的名稱,沒有路徑。它通過改變普通的Makefiles來工作。與target_link_libraries相同。目前還不清楚這兩個項目是誰相互關聯。通常IDE會跟蹤單個項目;交織的不支持。