C++编译小技巧

1. 单文件

// math.cpp
int multiply(int a,int b)
{
  return a * b;
}

// main.cpp
#include <iostream>
int main(){
	std::cout << "Hello, world!" << std::endl;
	std::cin.get();
}

1.1单文件编译(不含main函数)

要单独编译而不链接,需要添加-c选项

g++ -c math.cpp (对应生成:math.o文件)

1.2 单文件编译(含main函数)

g++ main.cpp -o main (如果不指定,默认a.out)


2. 多文件

多个文件需要链接

// main.cpp
#include <iostream>
int main()
{
	log("Hello,C++");
	std::cin.get();
}
// log.cpp
#include <iostream>
void log(const char* message)
{
	std::cout << message << endl;
}

对于多文件,有以下几种编译方式:

  1. 一次性编译多个cpp文件,最后输出合并到一个.o文件。

编译命令:g++ main.cpp log.cpp -o hello

  1. 将它们全部单独编译,然后将所有生成的".o“文件链接在一起
g++ -c main.cpp (输出main.o)
g++ -c log.cpp (输出log.o)
g++ main.o log.o [-o program]

对于C++,我们分清楚编译阶段链接阶段,对于我们分析解决问题有很大帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值