linux g++ gcc编译c++哪个好,linux g++编译c++
單個(gè)源文件生成可執(zhí)行程序
編譯器 g++ 通過檢查命令行中指定的文件的后綴名可識(shí)別其為 C++ 源代碼文件。編譯器默認(rèn)的動(dòng)作:編譯源代碼文件生成對(duì)象文件(object file),鏈接對(duì)象文件和 libstdc++ 庫(kù)中的函數(shù)得到可執(zhí)行程序。然后刪除對(duì)象文件。由于命令行中未指定可執(zhí)行程序的文件名,編譯器采用默認(rèn)的 a.out。程序可以這樣來運(yùn)行:
g++ helloworld.cpp
./a.out
通過-o選項(xiàng)指定可執(zhí)行程序文件名
g++ helloworld.cpp -o helloworld
./helloworld.
程序 g++ 是將 gcc 默認(rèn)語(yǔ)言設(shè)為 C++ 的一個(gè)特殊的版本,鏈接時(shí)它自動(dòng)使用 C++ 標(biāo)準(zhǔn)庫(kù)而不用 C 標(biāo)準(zhǔn)庫(kù)。通過遵循源碼的命名規(guī)范并指定對(duì)應(yīng)庫(kù)的名字,用 gcc 來編譯鏈接 C++ 程序是可行的,如下例所示:
gcc helloworld,cpp -lstdc++ -o helloworld
選項(xiàng) -l (ell) 通過添加前綴 lib 和后綴 .a 將跟隨它的名字變換為庫(kù)的名字 libstdc++.a。而后它在標(biāo)準(zhǔn)庫(kù)路徑中查找該庫(kù)。gcc 的編譯過程和輸出文件與 g++ 是完全相同的。
在大多數(shù)系統(tǒng)中,GCC 安裝時(shí)會(huì)安裝一名為 c++ 的程序。如果被安裝,它和 g++ 是等同,如下例所示,用法也一致:
c++ helloworld.cpp -o helloworld
多個(gè)源文件生成可執(zhí)行程序
/* 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”“這句代碼,它的意思是搜索系統(tǒng)頭文件目錄之前將先在當(dāng)前目錄中搜索文件“speak.h“。而”speak.h“正在該目錄中,不用再在命令中指定了)。
總結(jié)
以上是生活随笔為你收集整理的linux g++ gcc编译c++哪个好,linux g++编译c++的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux压缩命令 实例子,Linux下
- 下一篇: linux glibc 编译安装,gli