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.s
与gcc -S test.i
相同。并且检查语法错误是在编译过程进行的。
gcc -c
(c小写)汇编(assembling),将.s文件转换成机器能执行的机器代码.o文件,同样即使不指定文件名也会生成与.s文件同名的.o文件,gcc -c test.s -o test.o
与gcc -c test.s
相同。
gcc x.o
或gcc x.o -o x.exe
链接(linking)将机器码.o文件连接成可执行文件.exe。