本文由 发布,转载请注明出处,如有问题请联系我们! 发布时间: 2021-08-01ubuntu安装gcc编译器出错-linux在线安装gcc命令步骤
加载中在Ubuntu终端设备系统软件开发中,大家必须依靠一些命令行工具。与Windows下的IDE集成化开发工具对比,有一些差别。
一般在Linux下要gcc编译c语言代码,能够根据可视化工具安装gcc,以Ubuntu 16.04为例子。
sudo apt-get install gcc建立一个新的C语言程序开展编译程序训练,能够应用vim或touch指令建立一个文档。
vim test.c / touch test.c#include int main(){ printf("study gcc\n"); return 0;}代码编辑进行后,用gcc命令编译程序。
$ lstest.c$ gcc -o test test.c-o主要参数特定可执行文件的名字,test.c是源码文档。编译程序进行后,可执行程序检测将发生在文件列表中。
$ lstest test.c在cmd中,运作可执行文件,查询它是不是会輸出预估的內容:
$ ./teststudy gcc多文档编译程序通用性程序流程由好几个文档构成。要编译程序好几个文档程序流程,必须将全部源代码传送给c语言编译器。
以C语言为例子,将test.c拆卸成2个文档,建立test2.c。
touch test2.c
#include void print_test(){ printf("study gcc\n"); }test2.c中界定了一个名叫print_test的涵数,用于輸出“科学研究gcc”。
您能够在test.c:
test.c
void print_test();int main(){ print_test(); return 0;}依照下列流程,编译程序一个由2个文档构成的程序流程:
gcc -o test test.c test2.c分析编译程序步骤程序流程编译程序能够进一步分成两个阶段:编译程序和连接。
我们可以阶段性编译程序test.c,test2.c。源代码如下所示:
$ lstest.c test2.c编译程序test2.c文档以转化成test2.o总体目标文档:
$ gcc -c test2.c$ lstest2.c test2.o test.c编译程序test.c文档并转化成test.o总体目标文档:
$ gcc -c test.c$ lstest2.c test2.o test.c test.o最终,这两个总体目标文档被连接起來转化成一个可执行文件:
$ gcc -o test test.o test2.o$ ./teststduy gcc有关阶段性编译程序阶段性编译程序较大的特点是能够一部分编译程序= = >只编译程序变更的一部分。
在上面的事例中,test.c发生了转变,可是test2.c沒有转变,因此大家只必须编译程序test.c转化成一个新的test.o目标文档,最终和test2.o文档连接转化成一个新的可执行程序test。
能够节约编译程序test2.c的時间,假如文档多,节约的编译程序時间会较长。
应用Makefile 全自动编译程序触碰Makefile
.DEFAULT_GOAL := runtest2.o: test2.c gcc -o test2.o -c test2.ctest.o: test.c gcc -o test.o -c test.ctest: test2.o test.o gcc -o test test2.o test.orun: test ./testclean: rm -f *.o rm -f test $ lsMakefile test2.c test.c$ makegcc -o test2.o -c test2.cgcc -o test.o -c test.cgcc -o test test2.o test.o./teststduy gcc实行make指令
$ lsMakefile test2.c test.c$ makegcc -o test2.o -c test2.cgcc -o test.o -c test.cgcc -o test test2.o test.o./teststduy gccMakefile能够大概解释为总体目标,依靠和搭建命令。
默认设置状况下,Makefile界定的第一个总体目标是默认设置总体目标,默认设置总体目标在第一行显式界定。因为沒有转变,复建的时候会全自动省去编译程序连接。
$ make./teststudy gcc界定清除编译程序結果的总体目标= == >清除:
$ lsMakefile test test2.c test2.o test.c test.o$ make cleanrm -f *.orm -f test$ lsMakefile test2.c test.c