即使他們選擇不在文檔中提及此內容,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. 如何在C++中的其他目錄中創建文件?
- 3. 如何在C函數中使用全局變量包含在其他文件
- 4. cmake包括來自其他目錄的h文件
- 5. 如何將ClearCase中的文件與其他目錄中的文件合併?
- 6. cmake:如何在項目目錄中包含/編譯文件?
- 7. 如何在其他目錄分支中需要文件?
- 8. 使用其他目錄中的頭文件製作
- 9. 如何從使用python調用子目錄的其他目錄導入文件?
- 10. 如何從Scala中的其他目錄導入文件?
- 11. 如何鏈接其他目錄中的文件?
- 12. 如何配置make文件以查找其他目錄中的頭文件?
- 13. 在QML中爲其他QML文件聲明全局屬性
- 14. 使用部分其他目錄中添加文件
- 15. 如何在struts2中使用struts.xml文件中的全局屬性
- 16. 如何刪除從其他目錄複製的目錄中的文件?
- 17. 如何使用cmake包含目錄的所有文件?
- 18. NAnt:如何從其他目錄中替換一組文件
- 19. 使全局獲取文件從登錄用戶目錄
- 20. 如何查找文件並在其中包含其他文件?
- 21. 設置目錄的中間文件(如.OBJ)中的CMake
- 22. 如何在Angularjs中的其他文件中使用控制器
- 23. 如何使用dirent.h文件打印目錄中的文件?
- 24. 使用PHP在目錄中排除其他目錄和子目錄中的文件
- 25. 將文件複製到其他目錄
- 26. Makefile文件試圖從其他目錄
- 27. 將文件複製到其他目錄
- 28. 使用cmake將目標文件鏈接到lib.xxxx.a文件中
- 29. 如何製作主cmke並在其他cmake文件中調用它?
- 30. Android不會在一個目錄中創建文件,但會在其他目錄中創建文件
這並不果皮鐘沒有子文件夾中。你可以請[mcve]嗎? – Florian