小编Rub*_*-96的帖子

如何使用 CMake 包含 asio 库?

我正在尝试为一个班级开发一个项目,并且我想使用 CMake 来构建该项目。我当前的项目看起来像

|-bin
|-CMakeLists.txt
|-include
 |-asio-1.12.2
 |-chat_message.hpp
 |-chat_message.cpp
 |-CMakeLists.txt
|-src
 |-Server.cpp
Run Code Online (Sandbox Code Playgroud)

虽然我的 Server.cpp 需要/include/asio-1.12.2/include. 教授有一个 makefile,可以用 flags 来编译它 -DASIO_STANDALONE -Wall -O0 -g -std=c++11 -I./include -I./include/asio-1.12.2/include。我的 CMakeLists 文件如下所示:./CMakeLists.txt

CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
PROJECT(Server VERSION 0.0.1)
SET(CPP_STANDARD 11)
SET(CPP_STANDARD_REQUIRED True)
ADD_SUBDIRECTORY(include)
ADD_EXECUTABLE(Server src/Server.cpp)
TARGET_LINK_LIBRARIES(
   Server PRIVATE
   chat_message
   asio
)
Run Code Online (Sandbox Code Playgroud)

./include/CMakeLists.txt

ADD_LIBRARY(
   chat_message
   chat_message.cpp
   chat_message.hpp
)
ADD_LIBRARY(
   asio
   asio-1.12.2/include/asio.cpp
   asio-1.12.2/include/asio.hpp
)
TARGET_INCLUDE_DIRECTORIES(
   chat_message PUBLIC "${CMAKE_SOURCE_DIR}/include"
   asio PUBLIC "${CMAKE_SOURCE_DIR}/include/asio-1.12.2/include"
)
Run Code Online (Sandbox Code Playgroud)

如何将 asio 头文件链接到带有所需标志的 Server.cpp 文件?

cmake boost-asio asio

3
推荐指数
1
解决办法
9930
查看次数

标签 统计

asio ×1

boost-asio ×1

cmake ×1