我有以下文件結構的項目:如何創建一個僅依賴於外部頭文件的cmake標題庫?
project
|
|-------> lib1
| |----> lib1.h
|
|-------> lib2
| |----> lib2.h
|
|-------> main.cc
兩個庫lib1
和lib2
只包含頭文件,而lib2.h
包括lib1.h
和main.cc
包括lib2.h
。
現在該如何編寫這個項目的cmake文件?我試圖爲lib2
創建interface library,但編譯器無法找到lib1.h
。下面是我的cmake文件的內容:
的CMakeLists.txt爲LIB2:
add_library(lib2 INTERFACE)
target_sources(lib2 INTERFACE lib2.h)
target_include_directories(lib2 INTERFACE ../lib1/lib1.h)
的CMakeLists.txt整個項目:
add_executable(project main.cc)
target_link_libraries(project lib2)
什麼問題的cmake文件?
難道你不能只在'add_executable'中列出你的頭文件,並刪除所有'add_library'? – arrowd
有一件事在源代碼中看起來很奇怪,它可以解釋這個問題:'target_include_directories()'僅適用於包含頭文件的目錄。所以它應該是'target_include_directories(lib2 INTERFACE ../ lib1)'。 – Florian
感謝您的所有意見! –