Skip to content

Commit 25b0cac

Browse files
committed
Update README.md
1 parent 51d90b3 commit 25b0cac

File tree

5 files changed

+106
-59
lines changed

5 files changed

+106
-59
lines changed

C++.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# C & C++
2+
3+
## C/C++ 编译器
4+
5+
目前 C/C++ 的主流编译器有三个:
6+
7+
- GCC:使用最为广泛的 GNU Compiler Collection(GCC)是 GNU 基金会的项目,历史悠久,是曾经的编译器事实标准。
8+
9+
- Clang/LLVM:后起之秀 Clang/LLVM 工具链则来自 LLVM 项目,最早主要由苹果公司推动,Clang 作为前端有更友好的错误信息提示。LLVM 项目有着优秀的软件工程实践,LLVM 本身更是成为了众多新型编程语言首选的中间表示,并为众多解释型语言的即时编译(JIT)功能提供支持。
10+
11+
- MSVC:与这两个跨平台的开源编译器不同,微软公司的 MSVC 只能在 Windows 下运行,并只能得到运行在 Windows 下的软件。MSVC 的 C 语言与 GCC/Clang 支持的有些许不同,不建议使用 MSVC 开发 C 语言项目。另一方面,MSVC 对 C++ 的支持,特别是新标准的跟进上是三者中进度最快的。
12+
13+
本节的内容将基于 GCC 进行,理论上 Clang/LLVM 也不会有兼容性问题。通过命令
14+
15+
```bash
16+
gcc -v
17+
```
18+
19+
你应当可以得到你所使用的 GCC 版本信息。
20+
21+
## C
22+
23+
C 语言于 1969 年至 1973 年间,为了移植与开发 UNIX 操作系统,由 Dennis Ritchie 与 Ken Thompson,以 B 语言为基础,在贝尔实验室设计、开发出来。C 语言是一种静态类型的编译型语言,基本上是目前最接近硬件层面的高级语言。
24+
25+
对于 C 语言编写的可执行文件来说,则必须要有一个主入口,也就是著名的 `int main(int argc, char* argv[])` 函数,它需要有一个 `int` 类型的返回值。默认参数 `argc``argv` 是在调用可执行文件时传入的所有参数列表。通常而言,这个返回值为 `0` 意味着程序正常结束并退出。在文件 `a.c` 中输入如下内容:
26+
27+
```C
28+
/* a.c */
29+
int main(int argc, char* argv[]) {
30+
return 0;
31+
}
32+
```
33+
34+
通过命令 `gcc -o a a.c` 就可以将源文件 `a.c` 编译成可执行文件 `a`,再使用命令 `./a` 即可运行。显然上面的程序什么都没有做,因此执行程序不会有任何输出。现在我们通过 `printf` 在命令行环境中输出一些东西。
35+
36+
```C
37+
/* a.c */
38+
#include <stdio.h>
39+
40+
int main(int argc, char* argv[]) {
41+
printf("Hello World!");
42+
return 0;
43+
}
44+
```

QDP.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,5 @@ cmake .. -DCMAKE_BUILD_TYPE=Release -DQMP_MPI=ON -DCMAKE_INSTALL_PREFIX=~/.local
2929
cmake --build . -j8
3030
cmake --install .
3131
```
32+
33+
通常我们并不直接使用 QMP,而是将其作为多进程版本的 QDPXX 和 QUDA 的依赖。

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@
1515

1616
下面的内容大致介绍了各个操作系统下你需要准备的工具和软件,包括包管理工具,终端,Git,Python,C/C++ 编译器和构建系统,文本编辑器,以及一些重要软件简单使用方法。
1717

18-
- [Linux](./Linux.md)
18+
- [**Linux**](./Linux.md)
1919
- [Windows](./Windows.md)
2020
- [macOS](./macOS.md)
21-
- [WSL](./WSL.md)
2221
- [Git](./Git.md)
23-
- [Automake & CMake](./CMake.md)
2422
- [VSCode](./VSCode.md)
23+
- [C/C++](./C++.md)
2524

2625
## 2. Linux 集群
2726

@@ -30,6 +29,7 @@ Linux 集群是我们实际上进行计算时使用的环境,它们搭载了
3029
下面的内容大致介绍了在 Linux 集群中常用的环境管理软件,MPI 和任务调度系统。关于 Linux 的普通操作说明,请参阅上一节相应内容。
3130

3231
- [Module](./Module.md)
32+
- [Automake & CMake](./CMake.md)
3333
- [MPI](./MPI.md)
3434
- [Slurm](./Slurm.md)
3535

@@ -51,6 +51,6 @@ Linux 集群是我们实际上进行计算时使用的环境,它们搭载了
5151

5252
下面的内容大致介绍了目前主要使用的误差分析和拟合工具,NumPy 以及它的一些 GPU 实现。
5353

54-
- [gvar & lsqfit](./lsqfit.md)
5554
- [NumPy & SciPy](./NumPy.md)
5655
- [NumBa & CuPy & PyTorch](./CuPy.md)
56+
- [gvar & lsqfit](./lsqfit.md)

WSL.md

Lines changed: 0 additions & 55 deletions
This file was deleted.

Windows.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,3 +220,59 @@ winget install Microsoft.VisualStudioCode
220220
```
221221

222222
关于 VSCode 更多的使用方法,参见 [VSCode](./VSCode.md)
223+
224+
## Windows Subsystem Linux
225+
226+
Windows Subsystem for Linux (WSL) 是微软在 Windows 10 引入的子系统,可以在 Windows 上近乎无缝地获得 Linux 体验。配合 VSCode 的 WSL 扩展,对于格点 QCD 来说的开发体验实际已经超过了 macOS。
227+
228+
### 安装
229+
230+
启动终端,在命令行中输入
231+
232+
```PowerShell
233+
wsl --install
234+
```
235+
236+
根据提示操作就可以启用 WSL 需要的系统功能,并安装默认的 Ubuntu 发行版。这一步可能需要重启 Windows。
237+
238+
可以通过 `wsl --list --online` 命令列出所有可用的发行版,
239+
240+
```PowerShell
241+
wsl --list --online
242+
以下是可安装的有效分发的列表。
243+
使用 'wsl.exe --install <Distro>' 安装。
244+
245+
NAME FRIENDLY NAME
246+
Ubuntu Ubuntu
247+
Debian Debian GNU/Linux
248+
kali-linux Kali Linux Rolling
249+
Ubuntu-18.04 Ubuntu 18.04 LTS
250+
Ubuntu-20.04 Ubuntu 20.04 LTS
251+
Ubuntu-22.04 Ubuntu 22.04 LTS
252+
OracleLinux_7_9 Oracle Linux 7.9
253+
OracleLinux_8_7 Oracle Linux 8.7
254+
OracleLinux_9_1 Oracle Linux 9.1
255+
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
256+
openSUSE-Leap-15.4 openSUSE Leap 15.4
257+
openSUSE-Tumbleweed openSUSE Tumbleweed
258+
```
259+
260+
通过将对应的 `NAME` 项填入 `wsl --install` 之后可以安装相应的发行版。例如若想要安装 Debian,那么输入以下命令并回车。
261+
262+
```PowerShell
263+
wsl --install Debian
264+
```
265+
266+
如果一切顺利,你将会在终端的新建下拉菜单中看到相应的发行版。按照提示完成一些初始化例如账户密码设置等步骤后,就可以通过这种方式运行 WSL。另一方面,你可以直接在命令行中输入 `wsl` 来进入已安装的发行版。
267+
268+
你可以在资源管理器的路径区域输入 `\\wsl.localhost`,选择安装的发行版,就可以直接通过 Windows 资源管理器浏览 WSL 中的文件。反过来,在 WSL 中,`/mnt/c` 则对应于 Windows 系统的 `C:` 盘。
269+
270+
其他关于 Linux 操作系统的内容参见 [Linux](./Linux.md)
271+
272+
### VSCode 集成
273+
274+
首先在 Windows 中安装 VSCode,参见 [Windows](./Windows.md#visual-studio-code)。启动 VSCode,通过 `Ctrl+Shift+X` 唤出扩展商店,在搜索框输入 `WSL`,选择相应名称的扩展详情并点击安装。
275+
276+
<img width="1280" alt="image" src="./image/wsl.jpg">
277+
278+
点击 VSCode 最左下角的符号,可以看到有一项“连接到 WSL”的选项,选中后就可以在 WSL 中启动 VSCode,并使用原生的 Linux 环境。

0 commit comments

Comments
 (0)