【问题标题】:How do I link dynamically built cmake files on Windows?如何在 Windows 上链接动态构建的 cmake 文件?
【发布时间】:2019-11-17 20:33:46
【问题描述】:

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

我已经从网站上下载了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 和一个包含文件夹。

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

cmake_minimum_required(VERSION 3.15)
project(hello_world C)

set(CMAKE_C_STANDARD 99)

add_executable(hello_world main.c)

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

【问题讨论】:

  • 我在下面找到了一个解决方案,但我认为这不是正确的方法。

标签: c++ c windows cmake libcurl


【解决方案1】:

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

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

幸运的是,我发现这篇文章指出了我在分别引用包含文件夹和 .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} )

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

【讨论】:

    猜你喜欢
    • 2020-02-23
    • 2018-10-23
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    相关资源
    最近更新 更多