我試圖導入libuv到我的CMake項目,所以我可以鏈接它。我從here安裝libuv 1.12.0,並將其放入C:\Program Files\libuv\
。CMake導入圖書館目標給予未定義給予未定義的符號在Windows上
project(tls-server LANGUAGES C)
set(LIBUV_ROOT_DIR "C:\\Program Files\\libuv")
add_library(libuv SHARED IMPORTED)
set_property(TARGET libuv PROPERTY IMPORTED_LOCATION "${LIBUV_ROOT_DIR}\\libuv.dll")
set_property(TARGET libuv PROPERTY IMPORTED_IMPLIB "${LIBUV_ROOT_DIR}\\libuv.lib")
add_executable(tls-server "${CMAKE_SOURCE_DIR}/src/main.c")
target_link_libraries(tls-server libuv)
然而,鑑於上面的代碼我仍然得到在Visual Studio中未定義符號錯誤:
我該如何解決這個問題?我相信這些路徑都是正確的。我也在使用Windows 10.
你**不能**在MinGW上使用'.lib'文件。 '.lib'用於Visual Studio編譯器和鏈接器,但MinGW及其gcc需要'.a'(或'.dll.a')。使用純C語言,可以從'.def'文件創建'.a'。 – Tsyvarev
@Tsyvarev我明白了。不過,使用Visual Studio生成器也會出現同樣的錯誤。 – HexCoder