Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fun binary
note
提交
bfd744b3
N
note
项目概览
fun binary
/
note
通知
1
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
note
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bfd744b3
编写于
6月 25, 2021
作者:
fun binary
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
111
上级
569ad6b7
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
158 addition
and
1 deletion
+158
-1
读书笔记/CMake教程/开始.md
读书笔记/CMake教程/开始.md
+157
-0
读书笔记/Go语言项目实战IAM系统/环境搭建.md
读书笔记/Go语言项目实战IAM系统/环境搭建.md
+1
-1
未找到文件。
读书笔记/CMake教程/开始.md
0 → 100644
浏览文件 @
bfd744b3
# 开始
```
cmake
# 指定CMake最低版本
cmake_minimum_required
(
VERSION 3.10
)
# 设置项目名称
project
(
hello
)
# 添加可执行程序
add_executable
(
hello hello.cpp
)
```
CMake 支持大写、小写和大小写混合命令。
```
C++
//hello.cpp
#include <iostream>
using namespace std;
int main() {
cout << "hello cmake!!!" << std::endl;
}
```
### cmake_minimum_required
```
cmake
cmake_minimum_required
(
VERSION <min>[...<max>] [FATAL_ERROR]
)
```
1.
3.12版本新增
`<max>`
2.
功能:设置项目所需最低的cmake版本
3.
此命令将设置变量
`CMAKE_MINIMUM_REQUIRED_VERSION`
### project
```
cmake
project
(
<PROJECT-NAME> [<language-name>...]
)
project
(
<PROJECT-NAME>
[VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
[DESCRIPTION <project-description-string>]
[HOMEPAGE_URL <url-string>]
[LANGUAGES <language-name>...]
)
```
1.
设置项目名称,并将其存储在变量中
`PROJECT_NAME`
2.
从顶层调用
`CMakeLists.txt`
时还会将项目名称存储在变量中
`CMAKE_PROJECT_NAME`
3.
并且设置变量
`PROJECT_SOURCE_DIR`
,
` <PROJECT-NAME>_SOURCE_DIR`
,
` PROJECT_BINARY_DIR`
,
` <PROJECT-NAME>_BINARY_DIR`
**VERSION**
1.
接受一个非负整数组成的参数
2.
设置变量:
-
`PROJECT_VERSION`
,
` <PROJECT-NAME>_VERSION`
-
`PROJECT_VERSION_MAJOR`
,
` <PROJECT-NAME>_VERSION_MAJOR`
-
`PROJECT_VERSION_MINOR`
,
`<PROJECT-NAME>_VERSION_MINOR`
-
`PROJECT_VERSION_PATCH`
,
`<PROJECT-NAME>_VERSION_PATCH`
-
`PROJECT_VERSION_TWEAK`
,
`<PROJECT-NAME>_VERSION_TWEAK`
-
3.12版本新增存储变量
`CMAKE_PROJECT_VERSION`
**DESCRIPTION**
1.
建议这个描述是一个比较短的字符串,一般不超过几个字。
2.
设置变量:
-
`CMAKE_PROJECT_DESCRIPTION`
-
`PROJECT_DESCRIPTION`
,
`<PROJECT-NAME> _DESCRIPTION`
**HOMEPAGE_URL**
1.
项目规范页的URL
2.
设置变量:
-
`PROJECT_HOMEPAGE_URL`
,
`<PROJECT-NAME>_HOMEPAGE_URL`
-
`CMAKE_HOMEPAGE_URL`
**LANGUAGES**
1.
指定项目编程语言
2.
支持C、CXX(即C++)、CUDA、OBJC(即Object-C)OBJCXX、FORTRAN、ISPC和ASM。默认情况下C和CXX。
**代码注入**
1.
3.15版本增加
`CMAKE_PROJECT_INCLUDE`
and
`CMAKE_PROJECT_INCLUDE_BEFORE`
2.
3.17版本增加
`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE`
### add_executable
```
cmake
add_executable
(
<name> [WIN32] [MACOSX_BUNDLE]
[EXCLUDE_FROM_ALL]
[source1] [source2 ...]
)
```
1.
name:可执行目标文件的名字,在一个cmake工程中,这个名字必须全局唯一。
2.
WIN32:用于
`windows系统`
下创建一个以
`WinMain`
为入口的可执行目标文件(通常入口函数为
`main`
),它不是一个
`控制台应用程序`
,而是一个
`GUI应用程序`
。当
`WIN32`
选项使用的时候,可执行目标的
`WIN32_EXECUTABLE`
会被置位
`ON`
。
3.
MACOSX_BUNDLE:用于
`mac系统`
或者
`IOS系统`
下创建一个GUI可执行应用程序,当
`MACOSX_BUNDLE`
选项使用的时候,可执行目标的
`MACOSX_BUNDLE`
会被置位
`ON`
。
4.
EXCLUDE_FROM_ALL:用于指定可执行目标是否会被构建,当该选项使用的时候,可执行目标不会被构建。
5.
[source1] [source2 ...]:构建可执行目标文件所需要的源文件。也可以通过
`target_sources()`
继续为可执行目标文件添加源文件,要求是在调用
`target_sources`
之前,可执行目标文件必须已经通过
`add_executable`
或
`add_library`
定义了。
# 添加版本号和配置的文件
CMakeLists.txt
```
cmake
cmake_minimum_required
(
VERSION 3.10
)
project
(
Hello
)
# 设置版本变量
set
(
Hello_VERSION_MAJOR 1
)
set
(
Hello_VERSION_MINOR 0
)
# 拷贝,并生成配置文件
configure_file
(
HelloConfig.h.in HelloConfig.h
)
add_executable
(
hello hello.cpp
)
# include文件目录
target_include_directories
(
hello PUBLIC
"
${
PROJECT_BINARY_DIR
}
"
)
```
HelloConfig.h.in
```
C++
#define Hello_VERSION_MAJOR @Hello_VERSION_MAJOR@//注意@中间不能有空格,使用vscode自动保存会自动加空格
#define Hello_VERSION_MAJOR @Hello_VERSION_MAJOR@
```
hello.h
```
C++
#include <HelloConfig.h>
#include <iostream>
using namespace std;
int main() {
cout << "hello cmake!!!" << std::endl;
std::cout << Hello_VERSION_MAJOR << std::endl;
}
```
### configure_file
### target_include_directories
读书笔记/Go语言项目实战IAM系统/环境搭建.md
浏览文件 @
bfd744b3
...
...
@@ -130,7 +130,7 @@
```
# 如果下载不了可以直接先去官网https://golang.org/dl/下,然后再上传到服务器
[goiam@ ~]$ wget https://dl.google.com/go/go1.16.
4
.linux-amd64.tar.gz -O /tmp/go1.16.4.linux-amd64.tar.gz
[goiam@ ~]$ wget https://dl.google.com/go/go1.16.
5
.linux-amd64.tar.gz -O /tmp/go1.16.4.linux-amd64.tar.gz
```
2.
解压和安装
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录