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“正在該目錄中,不用再在命令中指定了)。
總結
以上是生活随笔為你收集整理的linux g++ gcc编译c++哪个好,linux g++编译c++的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux压缩命令 实例子,Linux下
- 下一篇: linux glibc 编译安装,gli