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++,我们分清楚编译阶段链接阶段,对于我们分析解决问题有很大帮助。

猜你喜欢

转载自blog.csdn.net/wangcheeng/article/details/129352827