欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

编译C++程序

程序员文章站 2022-05-07 12:11:19
...

单文件编译

C++程序Test.cpp:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

使用gcc编译;

$ gcc Test.cpp -lstdc++ -o main

使用g++编译:

$ g++ Test.cpp -o main

运行:

./main

多文件编译

主程序main.cpp:

#include <iostream>
#include "Hello.h"

int main() {
    std::cout << "Hello, World!" << std::endl;
    Hello *hi = new Hello();
    hi->hello();
    return 0;
}

Hello.h:

#ifndef CPP_HELLO_H
#define CPP_HELLO_H

class Hello {
public:
    void hello();
};
#endif //CPP_HELLO_H

Hello.cpp:

#include "Hello.h"
#include <iostream>
using namespace std;
void Hello::hello() {
    cout<<"hello"<<endl;
}

使用gcc编译:

$ gcc main.cpp Hello.cpp -lstdc++ -o main

使用g++编译:

$ g++ main.cpp Hello.cpp -o main

运行:

./main

g++ 常用命令选项

选项 描述
-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词。
-c 只编译并生成.o目标文件
-E 只运行 C 预编译器。
-g 生成调试信息。GNU 调试器可利用该信息。
-o FILE 生成指定的输出文件。用在生成可执行文件时。
-O0 不进行优化处理。
-O 或 -O1 优化生成代码。
-O2 进一步优化
-O3 比 -O2 更进一步优化,包括 inline 函数。
-shared 生成共享目标文件。通常用在建立共享库时。
-static 禁止使用共享连接
-w 不生成任何警告信息
-Wall 生成所有警告信息

谢谢阅读

相关标签: 编译