visual C++ and gcc
::: {.container}
::: {.post}
::: {.show-content}
visual c++6.0历史悠久
,,找到提及最多的就是用这款。。年龄跟我差不多大的编译器。
软件有些老了,win7win8win10记得以兼容模式运行。
命令行编译
cl.exe是微软c/c++编译器...从此不用新建工程新建项目。。。。。。只需cl
xdd.cpp
再xdd.exe运行,就可以了。对新手很友好吧,只需配置下环境变量。
::: {.image-package}
\
::: {.image-caption}
:::
:::
cpp hello.c > hello.i 只进行预编译。cpp是预编译器
cl编译器的参数:
cl /? 查看帮助
-GX: 启动同步异常处理
gcc是自由软件计划下的产物,我看黑防的书介绍是在这个编译器下运行的,干脆在linux上也学习学习。
先把最简单的hello源代码写好放在桌面,编译后的文件默认为a.out,也可用**-o选项设置文件名**。
::: {.image-package}
\
::: {.image-caption}
:::
:::
gcc -o xdd xdd.c
动态链接,会直接将源代码变成可执行文件(将四步合为一体)gcc -o xdd xdd.c --static 静态链接
gcc -E xdd.c -o hello.i 只进行预编译,输出文件名为hello.i
gcc -S hello.i -o hello.s 继续上一步,编译,源码——>汇编代码
gcc -c hello.s -o hello.o 汇编,汇编代码——>二进制代码
ld -static crt1.o crti.o crtbeginT.o hello.o -start-group -lgcc
-lgcc_eh -lc -end-group crtend.o crtn.o
链接,将二进制代码和一些其他要用的部分结合。生成可执行文件
-c
选项,将源代码xx.cpp转化为目标文件xx.obj,它将预编译、编译、汇编,三步合为一个选项。
-Wall 可以选择提示程序的错误信息,方便调试
gcc -v 查看版本信息
gcc --help 查看帮助信息
为什么我们要了解源码变可执行文件背后的过程?不了解,何谈编写高效的源码。
?gcc 和 g++的区别
gcc ( the GNU compiler collection),GNU的编译器集合。
g++,c++编译器。gcc包括g++。
:::
:::
:::