我如何 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} )
现在代码编译运行成功。
不过,我不认为这是执行此操作的正确方法,我们将不胜感激。
在过去的 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} )
现在代码编译运行成功。 不过,我不认为这是执行此操作的正确方法,我们将不胜感激。