使用 GCC 編譯 C++ 程式
本文將介紹如何使用 GCC(GNU C 編譯器)編譯 C++ 程式。我們來考慮一下這個示例程式。
示例
#include<iostream> using namespace std; main() { cout << "Hello World. This is C++ program" << endl; }
如果這是一個 C 程式,我們可以像下面這樣使用 GCC 編譯它 −
gcc test.c
不過,如果我們在這個區域中放入 C++ 檔名,可能會生成一些錯誤。
gcc test.cpp
輸出
/tmp/ccf1KGDi.o: In function `main': 1325.test.cpp:(.text+0xe): undefined reference to `std::cout' 1325.test.cpp:(.text+0x13): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' 1325.test.cpp:(.text+0x1d): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)' 1325.test.cpp:(.text+0x28): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))' /tmp/ccf1KGDi.o: In function `__static_initialization_and_destruction_0(int, int)': 1325.test.cpp:(.text+0x58): undefined reference to `std::ios_base::Init::Init()' 1325.test.cpp:(.text+0x6d): undefined reference to `std::ios_base::Init::~Init()' collect2: error: ld returned 1 exit status $
這不是編譯錯誤。這是連結錯誤。要新增正確的連結器,我們必須使用 -lstdc++ 選項。
gcc test.cpp -lstdc++
輸出
$ ./a.out Hello World. This is C++ program $
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP