CMake基本语法
2020-10-29 22:17 jiayayao 阅读(433) 评论(0) 编辑 收藏 举报- CMake和autotools是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量;
- cmake可以生成跨平台的编译配置文件,包括windows和mac;
- 建议统一使用外部编译,即新建build文件夹,不对原有工程有任何文件改动、新增或删减文件等;
- 隐式声明的两个变量:PROJECT_SOURCE_DIR源码目录和PROJECT_BINARY_DIR编译目录
- 自定义变量:SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/BIN)
- 编译动态库ADD_LIBRARY(hello SHARED $(LIBHELLO_SRC}),静态库是STATIC;
- 如何给编译好的动态库加版本号?
- 如何通过SET_TARGET_PROPERTIES同时构建同名的动态库和静态库;
- 添加头文件目录INCLUDE_DIRECTORIES(directory1 directory2 ...)
- TARGET_LINK_LIBRARIES(main libhello.a),编译main的target需要链接的静态库;
- 如何打印输出信息MESSAGE(STATUS "Home dir:$ENV{HOME}");
- 向C++编译器添加-D定义:ADD_DEFINITIONS(-DENABLE_DEBUG);
- FILE指令可以进行文件操作;
- IF WHILE FOREACH等语句的使用
本文来自博客园,作者:jiayayao,邮箱:jiayayao@126.com,转载请注明原文链接:https://www.cnblogs.com/jiayayao/p/13899602.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥