cmake 如何创建指定库链接

kr98yfug  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(221)

我想在Windows系统上实现一个简单的服务器。我遇到了一个问题,我不能在CMake中成功编译它,因为我不知道如何将ws2_32.lib链接到它。使用gcc/g++,我的命令

g++ -g -o myhttp ../src/main.cpp ../src/start_up.cpp -I ../inc -lws2_32

运行良好,但在CMake中我不知道如何操作。以下是我的CMakeLists.txt

cmake_minimum_required(VERSION 3.2)

project(MYHTTP_BASE_C++)
set(CMAKE_PROGRAM_PATH ${CMAKE_SOURCE_DIR}/bin)
include_directories(${CMAKE_SOURCE_DIR}/inc)

find_package("ws2_32.lib")

target_link_libraries( SRC)
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC)
add_executable(myhttp ${SRC})

错误为

CMake Error at CMakeLists.txt:7 (target_link_libraries):
  Cannot specify link libraries for target "ws2_32.lib" which is not built by
  this project
ccrfmcuu

ccrfmcuu1#

通常情况下,以下CMakeLists.txt文件适用于windows。您必须在target_link_libraries中指定库。

project(MYHTTP_BASE_C++)
set(CMAKE_PROGRAM_PATH ${CMAKE_SOURCE_DIR}/bin)
include_directories(${CMAKE_SOURCE_DIR}/inc)
...
add_executable(myhttp ${SRC})
target_link_libraries(myhttp ws2_32)

ws2_32.lib是相应dll的导入库。

相关问题