【发布时间】:2017-06-12 19:59:31
【问题描述】:
我正在尝试将 libuv 导入到我的 CMake 项目中,以便可以链接它。我从here 安装了libuv 1.12.0,并将其放在C:\Program Files\libuv\ 中。
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 我明白了。但是,我在使用 Visual Studio 生成器时遇到了同样的错误。