vscode简单c语言多文件编译

多文件编译

之前知乎抄的vscode配置
https://www.cnblogs.com/esllovesn/p/10012653.html这个是简化版也是更方便版的,建议直接看这个。
https://www.zhihu.com/question/30315894这个是知乎原文,比较复杂。

进行少量的多文件编译,C语言直接用gcc 源文件1.c 源文件2.c 头文件1.h这样就好,C++用g++。默认生成a.exe,加-o可指定输出文件名,其余选项百度gcc使用教程。如果需要多次编译可以写一个批处理。

  • 进行大量的多文件编译,请学习如何写makefile或使用cmake。然后把tasks的命令改成调用make等。如果你想使用别人的库,比如ffmpeg,可能需要在命令中指定-I、-l(小写的L)、-L。具体参数阅读那个库的文档。还可能需要把路径添加到c_cpp_properties.json和compile_flags.txt里来配置Intellisense。这些情况下可以考虑单独建一个工作区,不要和单文件编译的共用。其实不新建工程(Project)、只是单文件就能调试,是不利于以后使用和理解大型IDE的。不过初学也不用掌握那么多,不要觉得建工程很麻烦、不建工程就能编译很强就是了。总之这些和VSC无关,用其它IDE或是手动编译也会遇到差不多的问题,也有点复杂。

入门水平,不太懂后面的意思,使用第一种少量多文件编译的方法。

.c文件-->预处理-->.i文件-->编译-->.s文件-->汇编-->.o文件-->链接-->.exe文件

gcc -E (E大写)预处理(preprocessing)。不会检查语法错误。win10需要使用重新定向生成.i文件gcc -E test.c > test.i或者指定文件名gcc -E test.c -o test.i,否则只会输出到stdout。

gcc -S(S大写)编译(compiling)。将.i文件编译成.s文件,即使不指定文件名也会生成与.i文件同名的.s文件,即gcc -S test.i -o test.sgcc -S test.i相同。并且检查语法错误是在编译过程进行的

gcc -c(c小写)汇编(assembling),将.s文件转换成机器能执行的机器代码.o文件,同样即使不指定文件名也会生成与.s文件同名的.o文件,gcc -c test.s -o test.ogcc -c test.s相同。

gcc x.ogcc x.o -o x.exe链接(linking)将机器码.o文件连接成可执行文件.exe。

相关推荐