Cmake 使用备忘

简介: 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)
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
运维 Linux 测试技术
【运维】chrony配置服务器时间同步
集群服务中,时间的问题很重要,但凡某个节点跟其余节点时间岔开了,就会显示错误!
1495 0
【运维】chrony配置服务器时间同步
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
1218 5
|
数据可视化 大数据 Linux
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
本文介绍了如何在VMware中安装openEuler操作系统,从选择合适的镜像版本下载开始,到创建虚拟机、配置CPU虚拟化、进行系统安装、设置网络连接,直至安装DDE桌面环境实现图形化操作。openEuler是一款由华为开源的操作系统,支持多种处理器架构,广泛应用于数据库、大数据、云计算等领域。文中还分享了安装过程中的注意事项及解决网络问题的方法,适合初次接触openEuler的用户参考学习。
5223 4
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
|
安全 开发工具 iOS开发
探索macOS原版镜像ISO的下载之道
探索macOS原版镜像ISO的下载之道
|
人工智能 搜索推荐
如何利用AIGC技术实现个性化定制的绘画作品?
【4月更文挑战第30天】如何利用AIGC技术实现个性化定制的绘画作品?
562 1
|
应用服务中间件 网络安全 开发工具
利用 KMS 对文本信息进行签名验签实践
通过阿里云的KMS产品针对文件或者证书文件进行签名验签,可以有效解决攻击者针对敏感文件、重要文件在传输过程中被篡改,其次可以实现证书双向认证过程中的证书合法性校验,真正做到传输链路安全。
823 1
|
编译器 Linux 开发者
【cmake 交叉编译配置设置】CMAKE_TOOLCHAIN_FILE:跨平台编译的秘密武器
【cmake 交叉编译配置设置】CMAKE_TOOLCHAIN_FILE:跨平台编译的秘密武器
2065 0
|
存储 缓存 编译器
C++11及上的原子操作底层原理与锁实现
C++11及上的原子操作底层原理与锁实现
992 0
IDEA 高版本 PlantUML 插件默认主题修改
很多人会选择在 IDEA 中安装 PlantUML Integration 插件。 但是高版本的 IDEA PlantUML Integration 插件默认的主题和之前的完全不一样, 颜色偏暗,不同的组件很难区分开。 其实不仅是插件里,在官网上写同样的脚本,默认的主题也是一样的情况。 那么如何解决?
1638 2
UE TMap TArray 遍历删除
UE TMap TArray 遍历删除
804 0