Cmake 使用备忘

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Cmake 使用备忘

CMake Vcpkg

set(CMAKE_TOOLCHAIN_FILE "D:/SoftwareData/vcpkg/scripts/buildsystems/vcpkg.cmake")

CMake 引入包

CUDA TensorRT TensorRT和CUDA放到一起

find_package(CUDA REQUIRED)
include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include")
link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib")

OpenCV

find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(test main.cpp)
target_link_libraries( test ${OpenCV_LIBS} )

Eigen3

set(Eigen3_DIR "D:/SoftwareData/vcpkg/packages/eigen3_x86-windows/share/eigen3")
find_package(Eigen3 CONFIG REQUIRED)
target_link_libraries(main PRIVATE Eigen3::Eigen)

Thread

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(test PUBLIC Threads::Threads)

Boost

sudo apt-get install libboost-all-dev
find_package(Boost REQUIRED)
if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})
endif()
SET(${Boost_LIBRARIES})

MYSQL

sudo apt install mysql-server mysql-client libmysqlclient-dev
find_package(MySQL REQUIRED)
if(MYSQL_FOUND)
    include_directories(${MYSQL_INCLUDE_DIR})
endif()
SET(LIBS mysqlclient_r)

Protobuf

sudo apt install libprotobuf-dev protobuf-compiler
find_package(Protobuf REQUIRED)
function(proto2cpp PROTO_FILE CPP_DIR)
    execute_process(COMMAND ${PROTOBUF_PROTOC_EXECUTABLE} ${PROTO_FILE} --cpp_out=. --proto_path=${CPP_DIR} WORKING_DIRECTORY ${CPP_DIR})
    message("${PROTOBUF_PROTOC_EXECUTABLE}  ${PROTO_FILE} --cpp_out=${CPP_DIR} --proto_path=${CPP_DIR}")
endfunction()
proto2cpp("${CMAKE_CURRENT_SOURCE_DIR}/example/user.proto" "${CMAKE_CURRENT_SOURCE_DIR}/example")
add_executable(mprpc main.cpp)
target_link_libraries(mprpc protobuf)
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
编译器 C语言
针对make工具和Makefile文件的学习心得
【8月更文挑战第24天】本文分享了关于 make 工具和 Makefile 文件的学习心得。make 工具与 Makefile 在软件开发特别是大型项目中扮演着重要角色,能自动化构建流程并提升开发效率。文章首先强调了了解 make 和 Makefile 重要性的必要性,并详细解析了 Makefile 的基本结构:包括目标、依赖和命令的定义;通过变量简化命令与依赖;以及伪目标的使用等。接着,文中介绍了几个关键的 Makefile 编写技巧:如何合理组织依赖关系,有效利用变量和宏,灵活运用自动变量,以及添加清晰的注释等。
|
7月前
|
测试技术
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
178 3
|
7月前
|
IDE Linux 程序员
Linxu自动化构建工具make/Makefile究竟时什么?
Linxu自动化构建工具make/Makefile究竟时什么?
58 0
|
7月前
|
算法 程序员 编译器
【cmake 踩坑记录】CMake文件安装深入解析:EXCLUDE的奥秘与替代方案
【cmake 踩坑记录】CMake文件安装深入解析:EXCLUDE的奥秘与替代方案
265 0
|
7月前
|
Linux C语言
【Linux系统编程】项目自动化构建工具make/Makefile--2
【Linux系统编程】项目自动化构建工具make/Makefile--2
|
7月前
|
Linux 开发工具 C语言
【Linux系统编程】项目自动化构建工具make/Makefile--1
【Linux系统编程】项目自动化构建工具make/Makefile--1
|
IDE 编译器 开发工具
CMake常用命令大全:提高项目构建效率
CMake是一个跨平台、开源的构建工具,它可以自动生成Makefile或者Visual Studio等IDE的工程文件。它能够帮助开发者更方便地管理项目的构建过程,提高项目构建的效率。在本文中,我们将介绍CMake常用的命令以及对应的用法
104 0
|
Unix C++ 开发者
CMake vs Makefile: 如何选择适合你的项目构建工具
在软件开发中,构建(build)是一个非常重要的过程。我们需要将源代码转换为可执行文件或库文件。为了完成此过程,我们通常使用构建工具来自动化构建过程。CMake和Makefile都是用于构建和管理软件项目的工具。CMake是一个跨平台的构建工具,它可以自动生成Makefile,而Makefile是一个GNU工具,用于描述源文件之间的依赖关系并指定如何编译和链接它们
459 0
|
XML Java 编译器
Android编译器及编译工具之编译工具
Apache Ant 是由 Java 语言开发的工具,由 Apache 软件基金会所提供。Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。Apache Ant 的配置文件写成 XML 容易维护和书写,而且结构很清晰。
405 0
CMake教程10:编写CMake中遇到的问题
CMake教程10:编写CMake中遇到的问题
1219 0