52
我在我的項目根目錄中有一個CMakeLists.txt,在我的/ src文件夾中有一個。/src文件夾中的文件夾只包含一個帶有.cpp文件(set (SOURCEFILES main.cpp foo.cpp)
)和根CMakeLists.txt的變量,我做add_subdirectory(src)
,後來我做了add_executable(MyApp ${SOURCEFILES})
。cmake變量作用域,add_subdirectory
但CMake的給我的錯誤
add_executable調用的參數數目不正確,不提供
我怎麼cmake的見到變量來源 ?我讀的cmake只知道全局變量,但是這顯然不是這樣的......
謝謝,這解決了這個問題。但是另一個需要注意的是:在子目錄中,您現在要使用'$ {CMAKE_CURRENT_SOURCE_DIR}/foo.cpp'而不是'foo.cpp',因爲cmake現在在父範圍內。 – blubberbernd
或者,您可以在add_subdirectory調用之前在父CMakeLists.txt文件中設置變量,並將其定義繼承到子CMakeLists文件。同樣,如果您需要從多個CMakeLists文件中引用它們,則需要限定這些文件的名稱。 – DLRdave
您還需要在當前範圍內創建變量,以在子目錄/函數中使用其值:'set(VAR value PARENT_SCOPE);設置(VAR $ {VAR});' –