过去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-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?
答案 0 :(得分:1)
我终于解决了这个问题,方法是在C:目录中创建一个cmake文件夹,然后将其复制到内置的curl CMake项目文件夹中。
问题是我没有找到有关如何在Windows上为CMake引用项目的特定教程,特别是curl项目。
幸运的是,我发现这篇文章指出了我在分别引用include文件夹和.lib目录时遇到的问题。 How to link shared library *dll with CMake in Windows
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} )
现在,代码可以编译并成功运行。 我认为这不是执行此操作的正确方法,我们将不胜感激。