CMake 链接第三方的库 和 添加C++11的支持

这里的例子, 是链接libev , 如下:

我的CMake 版本是3.10


# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (server)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)

# 添加第三方的库
set(INC_DIR /usr/local/include/)
set(LINK_DIR /usr/local/lib)

include_directories(${INC_DIR})
link_directories(${LINK_DIR})
link_libraries(ev)


# 指定生成目标
add_executable(server ${DIR_SRCS})

# 将第三方的库链接到可执行文件
target_link_libraries(server ev)


那要怎么样, 才能支持C++11呢?

很简单, 在版本要求的下面, 加上这两句话, 就行了


SET(CMAKE_C_COMPILER g++)
add_compile_options(-std=c++11)





  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: cmake_minimum_required(VERSION 3.0) project(asio_project) find_package(asio REQUIRED) add_executable(asio_project main.cpp) target_link_libraries(asio_project asio::asio) ### 回答2: 要将第三方ASIO添加CMakeLists中,可以按照以下步骤操作: 1. 首先,将ASIO的源代码或文件放置在项目中的合适位置,例如在项目的"third_party"文件夹下。 2. 在CMakeLists.txt文件中,使用`add_subdirectory()`指令添加ASIO的路径。假设ASIO位于项目的"third_party/asio"目录下,则添加以下行: ``` add_subdirectory(third_party/asio) ``` 3. 然后,使用`include_directories()`指令将ASIO的头文件路径包含进项目中。假设ASIO的头文件位于"third_party/asio/include"目录下,则添加以下行: ``` include_directories(third_party/asio/include) ``` 4. 最后,在项目的可执行目标(例如`add_executable()`指令)或目标(例如`add_library()`指令)中,链接ASIO。例如: ``` add_executable(my_project main.cpp) target_link_libraries(my_project asio) ``` 这样,CMake会根据设置来编译和链接ASIO,让你的项目能够使用ASIO提供的功能和API。 ### 回答3: 在CMakeLists.txt中添加第三方asio需要以下几个步骤: 首先,在CMakeLists.txt文件顶部添加以下指令来查找所需的asio和头文件: ``` find_package(Boost REQUIRED COMPONENTS system) include_directories(${Boost_INCLUDE_DIRS}) ``` 这将使用Boost的system组件来构建asio。 接下来,可以设置项目名称、版本号和项目语言: ``` cmake_minimum_required(VERSION 3.0) project(MyProject VERSION 1.0 LANGUAGES CXX) ``` 然后,在目标可执行文件中链接asio: ``` add_executable(MyExecutable main.cpp) target_link_libraries(MyExecutable ${Boost_LIBRARIES}) ``` 这将链接您的可执行文件与asio一起。 最后,设置C++标准和编译选项: ``` set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") ``` 这将设置C++标准为C++11,并启用一些编译选项来提高代码质量。 综上所述,一个添加了asioCMakeLists.txt文件示例如下: ``` cmake_minimum_required(VERSION 3.0) project(MyProject VERSION 1.0 LANGUAGES CXX) find_package(Boost REQUIRED COMPONENTS system) include_directories(${Boost_INCLUDE_DIRS}) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") add_executable(MyExecutable main.cpp) target_link_libraries(MyExecutable ${Boost_LIBRARIES}) ``` 以上是一个基本的示例,您可以根据您的实际项目需求进行更改和扩展,例如添加其他的源文件等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值