Ubuntu---gcc && g++
摘要:今天用 gcc 编译 c++ 代码,发现会报错:std::cout 这个函数无定义,所以决定查一下原因,在这里总结一下,虽然以后回头看一定会觉得太菜,但是新手期还是总要经历的一个阶段,所以就记录下来。
1,什麽是 gcc / g++
首先说明:gcc 和 GCC 是两个完全不同的东西
GCC:GUN Compiler Collection(GUN 编译器集合),它可以编译 C,C++,Object-C等语言。
gcc 是 GUN C Compiler (C 编译器)
g++ 是 GUN C++ Compiler (C++ 编译器)
一个本质事实是,就本质而言,gcc 和 g++ 并不是编译器,而是一种驱动器,根据参数中要编译的文件类型,调用对应的 GUN 的编译器而已,比如,用 gcc 编译一个 .c 文件的话,会有一下几个步骤:
step1:Call a preprocessor, like cpp.
step2:Call an actual compiler, like cc or cc1.
step3:Call an assembler, like as.
step4:Call a linker, like ld.
由于编译器是可以更换的,所以 gcc 不仅仅可以编译 C 文件,所以更准确的说:gcc 调用的是 C Compiler,而 g++ 调用了 C++ compiler。
2,gcc 和 g++ 的主要区别
a,对于 *.c 和 *.cpp 文件,gcc 分别当作 c 和 cpp 文件编译
b,对于 *.c 和 *.cpp 文件,g++ 则统一当作 cpp 文件编译
c,在使用 g++ 编译文件时,g++ 会自动链接标准库STL,而 gcc 不会
d,在用 gcc 编译 c++ 文件时,为了能使用STL,需要加参数 -lstdc++ ,但这并不代表 gcc 和 g++ 等价,它们的区别不仅仅是这个。
$ gcc hello.cpp -lstdc++ -o hello
3,主要参数
-g : turn on debugging(so GDB gives morefriendly output)
-Wall : returns on most warnings
-O or -O2 : turn on optimizations
-o : name of the output file
-c : output an object file (.o)
-L : specify an includedirectory
-l : link with librarylib.a
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗