2014-10-03 68 views
0

我正在寫的CMakeLists.txt與此內容:cmake的add_subdirectory不正確編譯

project(FullLibrary C) 
enable_language(C ASM) 
cmake_minimum_required(VERSION 2.8) 
add_subdirectory("${PROJECT_SOURCE_DIR}/Asf") 

ASF是從愛特梅爾庫將建立在微處理器。如果我從這個文件中編譯它,我可以直接編譯它。我所做的是創建目錄內的另一個文件與此內容:

set (ASF_SOURCES 
    source_files_removed_for_brevity.c 
) 
add_library(asf4arm ${ASF_SOURCES}) 
SET_TARGET_PROPERTIES(asf4arm PROPERTIES LINKER_LANGUAGE C)# CXX ASM) 
SET_TARGET_PROPERTIES(asf4arm PROPERTIES LINK_FLAGS "${LINKER_FLAGS}") 

我編譯時收到的錯誤是: 致命錯誤:打開依賴文件Asf_arm/CMakeFiles/asf4arm.dir/ASF/SAM /驅動器/usart/usart.c.obj:沒有這樣的文件或目錄 我檢查和目錄是空的,但我沒有任何編譯錯誤。 如果我複製並粘貼主CMakeLists.txt中的列表,並更新路徑,一切正確編譯和庫正確生成。 我想我錯過了另一隻眼睛可以看到的東西。 有什麼建議嗎?

回答

0

我有一種感覺,你的project_sourc_dir變量沒有正確設置路徑。

嘗試,改變add_subdirectory( 「$ {} PROJECT_SOURCE_DIR/ASF」),以add_subdirectory(ASF)

+0

感謝您的評論尼克。我已經嘗試過了。我現在重新檢查,但它不起作用。錯誤是一樣的。謝謝你的嘗試。 – andyinno 2014-10-06 07:29:06

+0

看起來目錄名稱錯誤。它看起來像目錄名稱是Asf4Arm而不是Asf .. – Nick 2014-10-06 20:50:08

+0

是的。我注意到了它。我只是不明白爲什麼。交叉編譯工具鏈的一個可能的錯誤?今天將會是這個首先設置它的人。他知道cmake比我好很多。我會看看他是否知道這個問題。 – andyinno 2014-10-07 06:38:52