我想在我的項目中包含SFML源代碼。我的目錄是這樣佈局的:來自子目錄的CMake鏈接庫
main
SFML (subtree synced with the official git repo)
src
<various modules>
General (here lies the binary)
從主層我先添加SFML子目錄然後src。正如我見過看着構建的日誌,這將產生庫:
sfml‑system
sfml‑window
sfml‑network
sfml‑graphics
sfml‑audio
sfml‑main
現在,我想他們在總目錄這樣的鏈接到我的二進制:
add_executable(main ${main_SRCS})
target_link_libraries (main
sfml‑system
sfml‑window
sfml‑network
sfml‑graphics
sfml‑audio
sfml‑main
# Other stuff here
)
,但我得到:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsfml‑system
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsfml‑window
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsfml‑network
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsfml‑graphics
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsfml‑audio
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsfml‑main
爲什麼CMake嘗試使用系統庫而不是剛剛構建的系統庫,以及如何解決這個問題?
那些庫是同一個CMake項目的目標嗎?如果是這樣,是'sfml-system'等目標的實際名稱? –
頂級CMakeLists作用: 'add_subdirectory(SFML) add_subdirectory(SRC)' 我可以看到生成日誌庫名稱: 'CXX鏈接共享庫../../../lib/ libsfml-graphics.so等 – Tommalla
@BaummitAugen我剛剛意識到SFML子目錄定義了自己的項目。我想這會回答你的問題,並以某種方式改變我的東西? – Tommalla