即使他們選擇不在文檔中提及此內容,file(GLOB ...)
和file(GLOB_RECURSE ...)
似乎只適用於當前源目錄。有什麼辦法可以將不同的目錄整理出來嗎?如何在CMake中的其他目錄中使用文件全局文件
回答
file(GLOB)
起初可能有點混亂,幾個月前我也有類似的問題。
你必須直接在<globbing-expressions>
指定路徑:
file(GLOB <variable>
[LIST_DIRECTORIES true|false] [RELATIVE <path>]
[<globbing-expressions>...])
例如:
file(GLOB my_cpp_list "${CMAKE_CURRENT_SOURCE_DIR}/directory/*.cpp")
foreach(file_path ${my_cpp_list})
message(${file_path})
endforeach()
將打印在${CMAKE_CURRENT_SOURCE_DIR}/directory
所有的.cpp文件的路徑。
您是否使用不是「CMAKE_CURRENT_SOURCE_DIR」子目錄的目錄對此進行了測試? –
是的,它工作正常:'文件(GLOB my_cpp_list「$ {CMAKE_CURRENT_SOURCE_DIR} /../ test/*。cpp」)' – Blabdouze
我有同樣的問題,無論我指定什麼路徑,我會從CMAKE_CURRENT_SOURCE_DIR獲得一個glob。問題在於我提供給GLOB的路徑無效,並且正在恢復(優雅地但令人討厭地)到CMAKE_CURRENT_SOURCE_DIR。例如,以下任一情況都會產生您看到的症狀:
file(GLOB my_cpp_list "${CMAKE_CURRENT_SOURCE_DIR}/directory *.cpp")
我忘記了「目錄」後面的「/」。這就是爲什麼我從來沒有得到有效的結果,即使有有效的目錄名稱。
file(GLOB my_cpp_list "${CMAKE_CURRENT_SOURCE_DIR}/directoryy/*.cpp")
有一個名爲「directoryy」
- 1. 在node.js的其他文件中使用全局模塊
- 2. 全局char []變量,如何在其他文件中聲明它?
- 3. 如何在C++中的其他目錄中創建文件?
- 4. 使用CMake安裝其他文件
- 5. 在XML文件的同一目錄中查找其他文件
- 6. 如何在C函數中使用全局變量包含在其他文件
- 7. CMake的:仰望在cmake的文件中的變量,而不與其他文件
- 8. Python - 讀取其他文件夾/目錄中的文本文件
- 9. 如何在其他包含.cpp文件中使用函數和全局變量?
- 10. cmake包括來自其他目錄的h文件
- 11. 如何將ClearCase中的文件與其他目錄中的文件合併?
- 12. 如何在angular-cli項目中使用全局scss文件
- 13. cmake:如何在項目目錄中包含/編譯文件?
- 14. 如何在反映其他目錄中的文件的目錄中創建空的txt文件?
- 15. 如何在其他目錄分支中需要文件?
- 16. 使用其他目錄中的頭文件製作
- 17. 主目錄中沒有「.cmake」文件
- 18. 如何從使用python調用子目錄的其他目錄導入文件?
- 19. 如何讀取其他目錄中的文件?
- 20. 如何從Scala中的其他目錄導入文件?
- 21. 如何鏈接其他目錄中的文件?
- 22. 如何配置make文件以查找其他目錄中的頭文件?
- 23. 如何爲其他目錄中的所有C++文件生成標籤文件?
- 24. 在QML中爲其他QML文件聲明全局屬性
- 25. 如何在源文件中使用頭文件中聲明的全局變量?
- 26. 如何在struts2中使用struts.xml文件中的全局屬性
- 27. 使用部分其他目錄中添加文件
- 28. 測試makefile中是否存在其他目錄中的文件
- 29. 如何刪除從其他目錄複製的目錄中的文件?
- 30. 如何使用不在根目錄中的文件構建GNU全局標記文件?
這並不果皮鐘沒有子文件夾中。你可以請[mcve]嗎? – Florian