用到软件:xshell、vscode、vm、ubentu
在vm中使用iso文件安装ubentu,基本上一路都是傻瓜操作,就不细讲
使用下述代码,即可使虚拟机系统和主机使用ssh交互
sudo apt install openssh-server
使用下述代码,即可使用ifconfig命令查看ip地址
sudo apt install net-tools
正常情况下使用下述代码可以实现一些基本操作
ls 查看当前目录下的文件夹
ll 查看当前目录下的详细内容
pwd 查看当前目录
xshell 在之前玩mc服务器时已经玩过了,这里就不多赘述
vscode在第一次下载完启动后,点击extensions添加扩展
输入Chinese查找中文插件并下载
输入remote查找remote development下载链接服务器的插件
输入c查找c/c++的插件并下载
在remote development 安装完成后,左边工作栏会多出一个远程资源管理器,在里面选择远程,里面选择SSH,点击设置,选择第一个.ssh\config,修改他的属性,主机名和ip地址改为ubentu相应内容,然后保存,刷新后就可以连接我们的虚拟机了
在xshell中使用 mkdir 命令在根目录下新建一个linux文件夹,在vscode中的远程资源管理器中可以查看并连接,这就算是验证了两个软件都已经连接上了虚拟机的linux服务器
在linux文件夹下,新建test.c文件,并输入c语言基础框架试一下是否能正常运行
这里我报错了,报的是查找不到头文件,解决方法是在虚拟机中安装g++环境
sudo apt install g++
sudo apt install gcc
gcc/g++ -v/–version
g++版本要大于4.8.5
使用ctrl + L 即可清空虚拟机的命令行界面
使用下列代码,即可在虚拟机中编辑test.c文件,前者安装vim插件,后者使用vim访问该文件
sudo apt install vim
vim test.c
但vim编辑相当不方便,可以使用下列代码,回到刚才的界面
:q
使用下列代码返回上级目录
cd …
在vscode中编译test.c文件,输入正常的C的hello world代码
在虚拟机中 ,使用下列代码,即可在虚拟机环境中编译test.c文件
gcc test.c -o app
上述代码的意思是,用gcc编译test.c文件,-o表示生成后续名称的文件
若使用ls查看当下目录的文件,可以发现生成了一个叫app的文件
需要注意的是:这里的代码必须在vscode中保存了才能运行,保存的快捷键为ctrl + S
这里使用下述代码,可以输出我们想要的hello world
./app
若不加-o 则会生成一个a.out这样一个文件,输出结果一致
gcc test.c
./a.out
源代码 —预处理器–》预处理后源代码—编译器—》汇编代码—汇编器–》启动代码,目标代码,库代码,其他目标代码-----连接器 -----》可执行文件
源代码 .h .c .cpp
预处理后源代码 .i
汇编代码 .s
目标代码 .o
可执行程序 .exe .out
从上述流程,我们可以使用以下代码,来输出一个预处理后源代码,生成的文件可以在vscode上查看
gcc test.c -E -o test.i
-E代表预处理 ,-o表示输出的文件名
同理
gcc test.i -S -o test.s
gcc test.s -C -o test.o
可以使用下述代码,删除该目录下对应名称的文件
rm test.c
且可以用g++来编译c语言的程序
其他GCC常用参数选项
-I directory 指定include 包含文件的搜索目录
-g 在编译的时候,生成调试信息,该程序可以被调试器调试
-D 在程序编译的时候,指定一个宏
-w 不生成任何警告信息
-o [file1] [file2] 效果等同于上面的代码
-Wall 生成所有警告信息
-On n的取值范围:0~3.编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-l 在程序编译时,指定使用的库
-L 指定编译的时候,搜索的库的路径
-fPIC/fpic 生成与位置无关的代码
-shared 生成共享目标文件,通常用在建立共享库时
-std 指定c方言,如-std=c99 ,gcc默认的方言是GNU C
需要用到FTP软件,依然是之前玩mc云服务器的经验,我可以用FlashFXP来上传
由于vscode已经更新的相当强大了,也可以直接利用VSCODE来上传,暂时不知道有没有啥限制