您当前所在位置:首页安装教程总结配置LinuxC的终端环境

总结配置LinuxC的终端环境

更新:2023-08-10 14:48:22编辑:tooool归类:安装教程人气:68

  • 配置终端的C开发环境

在Ubuntu 终端系统中开发,需要依赖一些命令行工具,对比使用Windows 下的IDE集成开发环境会有一些不同之处。

总结配置LinuxC的终端环境

在Linux 下一般使用gcc 编译C 语言代码,gcc 可以通过管理工具进行安装,以Ubuntu 16.04为例

sudo apt-getinstall gcc

新建一个C 语言程序进行编译演练,可以使用vim, 或者是touch命令来创建一个文件。

vim test.c/ touch test.c
includeintmain(){printf("study gcc\n");return0;
}

代码编辑完成后,使用gcc 命令进行编译

$lstest.c$gcc -otesttest.c

-o 参数指定可执行程序名,test.c 是源码文件,当编译完成后,当前目录下会出现一个可执行文件test

$ lstesttest.c

在命令行下,将可执行程序运行起来,看是否会输出预期的内容:

$./teststudy gcc
  • 多文件编译

一般程序都是由多个文件组成,编译多个文件程序,需要将所有源码文件传给编译器。

以C语言为例,将test.c 拆解成两个文件,创建test2.c

touch test2.c

includevoidprint_test(){printf("study gcc\n");  
}

test2.c 中定义一个函数,函数名为print_test, 用于输出 "study gcc".

在test.c中直接调用print_test 即可:

test.c

voidprint_test();intmain(){
    print_test();return0;
}

按照以下步骤,编译由两个文件组成的程序:

gcc-otesttest.ctest2.c
  • 解析编译流程

程序编译可以进一步分成为编译(Compile) 和链接(Link) 这两个阶段

我们可以分阶段编译test.c, test2.c,源文件如下:

$ ls
test.ctest2.c

编译test2.c文件, 生成test2.o 对象文件:

$ gcc -ctest2.c$ ls
test2.ctest2.o    test.c

编译test.c文件,生成test.o 对象文件:

$ gcc -ctest.c$ ls
test2.ctest2.o  test.ctest.o

最后链接两个对象文件,生成可执行程序:

$gcc -otesttest.o test2.o$./teststduy gcc
  • 关于分阶段编译

分阶段编译的最大好处是, 可以进行部分编译 ==> 只是编译有变更的部分

在上面的例子中,test.c 有变更,而test2.c 没有变更,那么,我们只需要编译test.c 生成新的test.o 对象文件,最后再跟test2.o 文件链接生成新的可执行文件test。

可以省去编译test2.c 这段时间,如果文件较多,节省的编译时间就会很长。

  • 使用Makefile 自动编译

touch Makefile

.DEFAULT_GOAL:= runtest2.o:test2.cgcc-o test2.o -c test2.ctest.o:test.cgcc-o test.o -c test.ctest:test2.o test.ogcc-o test test2.o test.orun:test./testclean:rm-f *.orm-f test$lsMakefiletest2.c  test.c$makegcc-o test2.o -c test2.cgcc-o test.o -c test.cgcc-o test test2.o test.o./teststduygcc

执行make 命令

$ lsMakefiletest2.ctest.c$ make
gcc -o test2.o -ctest2.cgcc -o test.o -ctest.cgcc -o test test2.o test.o
./test
stduy gcc

Makefile 大致可以理解成 目标 、 依赖 以及 构建指令 。

缺省情况下,Makefile定义的第一个目标为默认目标,在第一行显式定义了默认目标,由于没有变更,再次构建时自动省略编译环节。

$ make
./teststudy gcc

定义用于清理编译结果的目标 ==》 clean:

$lsMakefiletest  test2.c  test2.o  test.c  test.o$make cleanrm-f *.orm-f test$lsMakefiletest2.c  test.c

清理编译结果,在进行全新编译时很方便。

我告诉你msdn版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

Win10系统更改登录错误次数限制的方法 Win10怎样更改文件资源管理器打开位置

游客 回复需填写必要信息