我如何 link 在 Windows 上动态构建 cmake 文件?

How do I link dynamically built cmake files on Windows?

在过去的 8 个小时里,我一直在努力寻找有关如何在 Windows 使用 CMake 构建的 C 项目中引用库的信息,特别是 cURL。

我已经从网站下载了 7.67 版 cURL 源代码,然后使用 visual studio 开发人员命令提示符使用以下标准方法将 CMake 项目编译到构建文件夹中:

cd winbuild
nmake /f Makefile.vc mode=dll

输出三个 curl 文件夹,其中一个名为 "libcurl-vc-x86-release-dll-ipv6-sspi-winssl"。 在该文件夹中包含一个 lib、一个 bin 和一个 include 文件夹。

我用 CLion 构建了我的 C 项目,这是生成的 CMake 文件。

cmake_minimum_required(VERSION 3.15)
project(hello_world C)

set(CMAKE_C_STANDARD 99)

add_executable(hello_world main.c)

如何使用 CMake 在我的 C 项目中正确使用我编译的 CURL?

我终于解决了这个问题,方法是在C: 目录下创建一个cmake 文件夹,然后复制到构建的curl CMake 项目文件夹中。

问题是我没有找到任何关于如何在 Windows 上为 CMake 引用项目的具体教程,特别是 curl 项目。

幸运的是,我发现了这个 post,它指出了我在分别引用包含文件夹和 .lib 目录时遇到的问题。

cmake_minimum_required(VERSION 3.15)
project(hello_world C)

set(CMAKE_C_STANDARD 99)

include_directories("C:/cmake/libcurl-vc-x86-release-dll-ipv6-sspi-winssl/include")
link_directories("C:/cmake/libcurl-vc-x86-release-dll-ipv6-sspi-winssl/lib")

add_executable(hello_world main.c)

set( LIBS libcurl )
target_link_libraries(hello_world ${LIBS} )

现在代码编译运行成功。 不过,我不认为这是执行此操作的正确方法,我们将不胜感激。