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;
}
对于多文件,有以下几种编译方式:
- 一次性编译多个cpp文件,最后输出合并到一个.o文件。
编译命令:g++ main.cpp log.cpp -o hello
- 将它们全部单独编译,然后将所有生成的".o“文件链接在一起
g++ -c main.cpp (输出main.o)
g++ -c log.cpp (输出log.o)
g++ main.o log.o [-o program]
对于C++,我们分清楚编译阶段和链接阶段,对于我们分析解决问题有很大帮助。
文章详细介绍了C++编程中如何处理单文件和多文件的编译与链接过程。在单文件情况下,可以使用g++带-c选项进行编译生成.o文件。包含main函数的文件则直接编译链接生成可执行文件。在多文件项目中,可以一次性编译所有源文件或分别编译后链接。理解编译阶段和链接阶段的区别对解决编程问题至关重要。

3767

被折叠的 条评论
为什么被折叠?



