1. 程式人生 > >linux gcc g++編譯命令選項

linux gcc g++編譯命令選項

編譯: 
[[email protected] code]# g
++-o test.o d.cpp out.cpp
[[email protected] code]# .
/test.o
1231
[[email protected] code]# 

編譯成靜態庫 
[[email protected] code]# g
++-o d.o -c d.cpp
[[email protected] code]# ar 
-r d.a d.o
ar: 正在建立 d.a
[[email protected] code]# g
++-outout.cpp ./d.a
[
[email protected]
 code]# .
/out1231
[[email protected] code]#

 GCC 可同時用來編譯 C 程式和 C++ 程式。一般來說,C 編譯器通過原始檔的字尾名來判斷是 C 程式還是 C++ 程式。
在 linux 中,C 原始檔的字尾名為 .c,而 C++ 原始檔的字尾名為 .C 或 .cpp。

  但是,gcc 命令只能編譯 C++ 原始檔,而不能自動和 C++ 程式使用的庫連線。
因此,通常使用 g++ 命令來完成 C++ 程式的編譯和連線,該程式會自動呼叫 gcc 實現編譯。

  假設我們有一個如下的 C++ 原始檔(main.cpp):

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


則可以如下呼叫 g++ 命令編譯、連線並生成可執行檔案:
[
[email protected]
hello_world]# g++ -o out main.cpp
[[email protected] hello_world]# ./out
Hello, world!
[[email protected] hello_world]#

註解:
1.    -o out 是生成指定的輸出檔名為out,當然你也可以改用其他你喜歡的名字。用在生成可執行檔案時。
2.  如果你喜歡用 gedit 這個編輯編寫源程式,可能會出現如下錯誤:
[[email protected] hello_world]# g++ main.cpp -o main.o
main.cpp: In function `int main()':
main.cpp:9: stray '\343' in program
main.cpp:9: stray '\200' in program
main.cpp:9: stray '\200' in program
[
[email protected]
hello_world]#

這時你可以用 vi 編輯器檢視源程式 main.cpp ,可能是如下所示:

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

這柯能是 gedit 編輯器自身帶進來的解碼錯誤,所以你最好還是用 vi 這個最經典的編輯器編寫程式程式碼,
可以用 gedit 檢視程式程式碼,如果你確實不習慣的話。

相關推薦

linux gcc g++編譯命令選項

編譯:  [[email protected] code]# g++-o test.o d.cpp out.cpp [[email protected] code]# ./test.o1231 [[email protected] code]#  編譯成靜態庫  [[email&

[Linux][2015-03-17] gcc/g++ 編譯選項

GCC的幾個常用選項                                gcc常用的編譯選項對程式碼的影響 建立時間:2001-12-21 文章屬性:原創 文章來源:http://xfocus.org/ 文章提交:alert7 (sztcww_at_sina.com) 測試環境 redhat 6

Windows Sublime Text 配置Linux子系統(WSL)下的 gcc/g++ 編譯環境

include 12px 重啟 結果 ctr 檢驗 AC system pat 0. 簡介(若已了解背景可以跳過此部分) Windows 10 Build 14316以上版本中加入了“Windows系統的Linux子系統”(Windows Subsystem for Lin

Linux系統使用入門進階總結(6)——Ubuntu下gcc/g++編譯連結過程

文章轉自: https://blog.csdn.net/VennyJin/article/details/82794331 這裡講的是最簡單的c/c++檔案在linux下編譯連結的過程,後期還可以使用cmake來完成更復雜的工程構建過程。請關注博主的後續文章哈~~~ Ubuntu下gcc

GCC & G++編譯選項

gcc & g++現在是gnu中最主要和最流行的c & c++編譯器 。 g++是c++的命令,以.cpp為主,對於c語言字尾名一般為.c。這時候命令換做gcc即可。其實是無關緊要的。 其實編譯器是根據gcc還是g++來確定是按照C標準還是C++標準編譯連結。

g++編譯命令選項

gcc & g++現在是gnu中最主要和最流行的c & c++編譯器 。 g++是c++的命令,以.cpp為主,對於c語言字尾名一般為.c。這時候命令換做gcc即可。其實是無關緊要的。 其實編譯器是根據gcc還是g++來確定是按照C標準還是C++標準編譯連結

gcc/g++基本命令

exe 註釋 esp 工作 return height 流行 根據 想要 gcc & g++現在是gnu中最主要和最流行的c & c++編譯器 。 g++是c++的命令,以.cpp為主,對於c語言後綴名一般為.c。這時候命令換做gcc即可。其實是無關緊要

gcc/g++編譯(生動形象,從最容易入手的hello world解釋了庫的概念)

默認 是我 包含 gcc編譯 not found 拷貝 使用 用戶 做了 1. gcc/g++在執行編譯工作的時候,總共需要4步 (1).預處理,生成.i的文件[預處理器cpp] (2).將預處理後的文件不轉換成匯編語言,生成文件.s[編譯器egcs] (3).有匯編變為

學習記錄:gcc/g++ 編譯與鏈接

分析 相互 you get 步驟 後臺開發 四個步驟 targe 生成 gcc/g++ 編譯與鏈接 編譯與鏈接的過程可以分解為四個步驟:預處理、編譯、匯編、鏈接 預處理:源代碼文件和相關的頭文件,被預處理器cpp預處理成一個後綴為 .i 的文件(選項:-E) 編譯:把預

Linuxg++編譯thread出錯的的解決方法

ima 方法 解決 g++ bsp 技術分享 inf 編譯 linu 錯誤如下圖所示: 因為thread是C++11新加入的特性,所以我們在用g++編譯的時候不能直接用,需要在g++後面加上 -std=c++0x -pthread 如果是gcc編譯多線程的話則應該要

mips-linux-gcc交叉編譯,kubernetes中pause二進位制資訊

一、編譯說明 剛接觸Kubernetes,便知道叢集搭建需要下載一個gcr.io/google_containers/pause-amd64:3.0映象,然後每次啟動一個容器,都會伴隨一個pause容器的啟動,pause是每個pod需要的根映象。 遇到這種情況我們都是通過

Ubuntu14.04下arm-linux-gcc交叉編譯環境搭建

Ubuntu下arm-linux-gcc交叉編譯環境搭建 系統:Ubuntu 14.04 32bit 1、網上下載 arm-linux-gcc-4.4.3.tar.gz 2、解壓

gcc g++ 編譯 wxwidgets的引數

簡單點: gcc編譯c程式,g++可編譯c和c++程式。 a.可行的命令格式 1.  g++ main.cpp -o c.out $(wx-config --cflags --libs) 2.  g++ $(wx-config --cflags) main.cpp -o a.

Ubuntu18.04安裝arm-linux-gcc交叉編譯工具(附arm-linux-gcc 5.4.0包)

一、下載arm-linux-gcc 5.4.0包 下載(百度雲)連結:https://pan.baidu.com/s/1AeqzkboWkJDJjU9HxtXhrA  提取碼:uzup  ------------------------------------------

Ubuntu 16.04 安裝arm-linux-gcc交叉編譯

方法一: 使用如下命令進行arm-linux-gcc的安裝: sudo apt-get install gcc-arm-linux-gnueabihf 使用如下命令進行arm-linux-g++的安裝: sudo apt-get install g++-arm-linux-gnuea

用arm-linux-gcc交叉編譯 openssl zlib curl

參考了大牛文章: 準備工作: 1. ubuntu 系統 2. 下載 arm-linux-gcc-4.3.2.tgz 放到 /opt cd /opt wget http://www.arm123.com.cn/linux/arm-linux-gcc-4.3.2.tgz

linuxg++ 編譯時動態庫和靜態庫的連結和標頭檔案問題

原來編譯的時候都是用的很隨意,沒用系統的總結一下,這幾天在編譯的時候遇到一些下問題,於是就總結一下,省得過幾天又給忘了。 1.動態庫和靜態庫簡介 靜態庫在程式連結的時候會自動的連結到程式裡,所以一旦編譯完成,靜態庫就不需要了,靜態庫以.a結尾。  動態庫在編譯時不會被連線到目的碼中,而是在程式執行

Ubuntu16.04下arm-linux-gcc交叉編譯環境搭建

Ubuntu下arm-Linux-gcc交叉編譯環境搭建 參考:http://blog.csdn.net/hebbely/article/details/53992805 1、網上下載 arm-

安裝arm-linux-gcc交叉編譯環境

步驟: 1.下載並安裝arm-linux-gcc arm-linux-gcc-4.2.1的版本在http://ftp.snapgear.org/pub/snapgear/tools/arm-linu

LinuxG++編譯第一個C++程式(Hello, world)

安裝完各種環境工具之後(sudo apt install g++) 繼而新建一個空白文件Helloworl.cpp,貼上進最簡單的程式碼: #include<iostream>