如何在Windows上链接动态构建的cmake文件

How do I link dynamically built cmake files on Windows?

本文关键字:构建 cmake 文件 动态 链接 Windows      更新时间:2023-10-16

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

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

cd winbuild
nmake /f Makefile.vc mode=dll

它输出三个curl文件夹,其中一个名为"libcurl-vc-x86-release-dll-ipv6-sspi-winsl"。在该文件夹中包含一个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项目。

幸运的是,我找到了这篇文章,它详细说明了我在分别引用include文件夹和.lib目录时遇到的问题。如何在Windows 中将共享库*dll与CMake链接

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} )

现在,代码编译并成功运行。我不认为这是正确的方法,但任何帮助都将不胜感激。