1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux g++ gcc编译c++哪个好 linux g++编译c++

linux g++ gcc编译c++哪个好 linux g++编译c++

时间:2022-03-03 21:20:57

相关推荐

linux g++ gcc编译c++哪个好 linux g++编译c++

单个源文件生成可执行程序

编译器 g++ 通过检查命令行中指定的文件的后缀名可识别其为 C++ 源代码文件。编译器默认的动作:编译源代码文件生成对象文件(object file),链接对象文件和 libstdc++ 库中的函数得到可执行程序。然后删除对象文件。由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。程序可以这样来运行:

g++ helloworld.cpp

./a.out

通过-o选项指定可执行程序文件名

g++ helloworld.cpp -o helloworld

./helloworld.

程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库。通过遵循源码的命名规范并指定对应库的名字,用 gcc 来编译链接 C++ 程序是可行的,如下例所示:

gcc helloworld,cpp -lstdc++ -o helloworld

选项 -l (ell) 通过添加前缀 lib 和后缀 .a 将跟随它的名字变换为库的名字 libstdc++.a。而后它在标准库路径中查找该库。gcc 的编译过程和输出文件与 g++ 是完全相同的。

在大多数系统中,GCC 安装时会安装一名为 c++ 的程序。如果被安装,它和 g++ 是等同,如下例所示,用法也一致:

c++ helloworld.cpp -o helloworld

多个源文件生成可执行程序

/* speak.h */

#include

class Speak

{

public:

void sayHello(const char *);

};

/* speak.cpp */

#include "speak.h"

void Speak::sayHello(const char *str)

{

std::cout << "Hello " << str << "\n";

}

/* hellospeak.cpp */

#include "speak.h"

int main(int argc,char *argv[])

{

Speak speak;

speak.sayHello("world");

return(0);

}

g++ hellospeak.cpp speak.cpp -o hellospeak

PS:这里说一下为什么在命令中没有提到“speak.h“该文件(原因是:在“speak.cpp“中包含有”#include”speak.h”“这句代码,它的意思是搜索系统头文件目录之前将先在当前目录中搜索文件“speak.h“。而”speak.h“正在该目录中,不用再在命令中指定了)。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。