gcc, g++使用记录

gcc,g++区别

(1)gcc与g++都可以编译c代码与c++代码。但是:后缀为.c的,gcc把它当做C程序,而g++当做是C++程序;后缀为.cpp的,两者都会认为是C++程序。

(2)编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接。

(3)编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。

g++用法

g++常用参数

  • -o <filename>:指定输出文件的名称。
  • -c :仅编译,不链接
  • -std=<standard>:指定标准版本,例如 -std=c++11
  • -g:生成调试信息
  • -I<directory>:指定头文件搜索路径。
  • -L<directory>:指定库文件搜索路径。
  • -l<library>:指定链接的库文件,例如,-lm 表示链接数学库。

g++常用指令

编译单个文件
g++ hello.cpp -o hello  

生成一个可执行文件 hello(在Windows上会生成 hello.exe)。如果没有使用 -o 选项,默认生成的可执行文件名为 a.out(在Windows上为 a.exe)。

编译多个文件

假设程序有main.cpphelper.cpp

单步完成:

可以用一条命令同时编译和链接所有源文件:

g++ main.cpp helper.cpp -o my_program

生成一个名为 my_program 的可执行文件。

分步完成:

1.编译各个源文件

g++ -c main.cpp -o main.o
g++ -c helper.cpp -o helper.o

-c 选项表示仅编译,不进行链接。每个命令都会生成一个目标文件:main.ohelper.o

2.链接目标文件

g++ main.o helper.o -o my_program
//g++ main.cpp -o main -lopencv_core 
  • 库文件opencv_core 位于默认搜索路径的情况下
  • 库名应该是没有 lib 前缀和文件扩展名的形式,例如 opencv_core 而不是 libopencv_core.so
  • 如果库文件不在默认搜索路径中,需要使用 -L 选项指定路径
链接外部库
g++ <源文件或目标文件> -o <输出文件名> -l<库名> [<其他选项>]
示例

编译一个包含两个源文件 main.cpphelper.cpp 的项目,并启用所有警告和C++11标准:

g++ -wall -std=C++11 main.cpp help.cpp -o my_program

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值