Cmake 使用备忘

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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
相关文章
|
3月前
|
编译器 C语言
针对make工具和Makefile文件的学习心得
【8月更文挑战第24天】本文分享了关于 make 工具和 Makefile 文件的学习心得。make 工具与 Makefile 在软件开发特别是大型项目中扮演着重要角色,能自动化构建流程并提升开发效率。文章首先强调了了解 make 和 Makefile 重要性的必要性,并详细解析了 Makefile 的基本结构:包括目标、依赖和命令的定义;通过变量简化命令与依赖;以及伪目标的使用等。接着,文中介绍了几个关键的 Makefile 编写技巧:如何合理组织依赖关系,有效利用变量和宏,灵活运用自动变量,以及添加清晰的注释等。
|
3月前
|
缓存 Unix 程序员
CMake 教程1
CMake 教程
62 1
|
4月前
|
自然语言处理 Linux C++
make和Cmake都有什么区别?(内附使用详解)
make: 是一个构建工具,它的任务是读取 Makefile 文件,并基于这些文件中的指令执行具体的构建操作。Makefile 文件包含了如何构建项目的规则,make 负责解析这些规则并执行必要的命令来编译和链接源代码,生成可执行文件或库。 CMake: 是一个构建系统生成器。它并不直接进行编译或链接,而是根据项目中 CMakeLists.txt 文件的内容生成一个或多个构建系统的描述文件(如 Makefile 或 Visual Studio 解决方案)。CMake 提供了一种更高级、更抽象的方式来描述构建过程,这使得它能够跨平台地生成各种构建系统。
358 0
|
5月前
|
C++ 缓存 Unix
面向 C++ 的现代 CMake 教程(四)(4)
面向 C++ 的现代 CMake 教程(四)
48 0
|
5月前
|
C++ 开发者 开发工具
面向 C++ 的现代 CMake 教程(四)(2)
面向 C++ 的现代 CMake 教程(四)
64 0
|
5月前
|
C++ 存储 测试技术
面向 C++ 的现代 CMake 教程(五)(2)
面向 C++ 的现代 CMake 教程(五)
65 0
|
5月前
|
C++ 存储 JSON
面向 C++ 的现代 CMake 教程(五)(4)
面向 C++ 的现代 CMake 教程(五)
61 0
|
5月前
|
存储 算法 C++
面向 C++ 的现代 CMake 教程(五)(5)
面向 C++ 的现代 CMake 教程(五)
46 0
|
5月前
|
C++ 缓存 存储
面向 C++ 的现代 CMake 教程(一)(3)
面向 C++ 的现代 CMake 教程(一)
118 0
|
5月前
|
C++ 测试技术 开发工具
面向 C++ 的现代 CMake 教程(五)(1)
面向 C++ 的现代 CMake 教程(五)
54 0