程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Linux下C++的編程——開偏介紹

Linux下C++的編程——開偏介紹

編輯:C++入門知識

Linux下C++的編程——開偏介紹


C++是一個功能強大而又應用廣泛的計算機語言,就應用領域而言,幾乎無所不在,因為有操作系統的地方就會有C++的存在,熱門程序而言,也就僅次於C和Java.而C與C++又有天然的血緣關系。

從事C++開發近兩年,雖然開發的產品都是跨平台的,但個人直接接觸到的編程工程還是更偏重於Windows平台(至少開發環境更多的是在Windows平台,還寫過“帶你玩轉Visual Studio”系列的博文),而現在要自己獨立地帶領一個項目的開發,還是一個跨平台的項目,也就有必要到Linux下C++的編程有一個進行一個系統的學習和了解。

本系列記錄自己在Linux平台下學習C++的一些總結和心得。希望與大家一起學習與成長!

在進行Linux下C++編程之前,先來了解幾個重要的工具和概念:

GUN

在Linux下進行編程,GNU是你永遠繞不開的一個概念,因為你處處都可以看到它,那它是一個什麼東西呢?
GNU是GNU’s Not Unix的縮寫,意思是GNU並不是Unix。那它是什麼呢?其實它有多個含義:

GUN項目

1984年,史托曼(Richard Stallman)開始GNU項目,這個項目的目的是創建一個自由、開放的UNIX操作系統(Free Unix)。但是建立一個操作系統談何容易啊!而且在當時的 GNU 是僅有史托曼一個人單打獨斗的,這實在太麻煩,但又不能放棄這個計劃。於是史托曼反其道而行之:“既然操作系統太復雜, 我就先寫可以在 Unix 上面運行的小程序,這總可以了吧?”基於這個想法, 史托曼便開始參考Unix上的現有軟件,並依據這些軟件的作用開發出具有相同功能的軟件,並將其開源。後來越來越多的人知道免費好用的GUN軟件,並且與付費的專利的性能差不了多少,使用GUN軟件的人就越來多,GNU項目也逐步打開知名度。

為了這個計劃,他開始使用原本Unix上面跑的軟件,並自行撰寫功能與Unix原有專利軟件相仿的軟件。但不論是什麼軟件,都得要進行編譯成為二進制檔案(binary file)後才能夠執行,因此他便開始撰寫C語言的編譯器,那就是現在相當有名的GNU C(gcc)!這個點相當的重要!這是因為C語言編譯器版本眾多,但都是專利軟件,如果他寫的C編譯器夠棒,效能夠佳,那麼將會大大的讓GNU計劃出現在眾人眼前!

GUN自由軟件協議

GPL協議指的是通用公共許可證(General Public License, GPL)。由於GNU項目開發的軟件都是開放源代碼的自由軟件,這就有可能被他人盜用並對它進行注冊而成為專利軟件。為解決這個問題,1985年史托曼與律師草擬了有名的通用公共許可協議,你可以在GNU軟件源碼的每一個文件(如.h、.cpp)開頭看到這個協議的聲明,如:

/*
 * Copyright (C) 2004-2010 Geometer Plus 
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301, USA.
 */

GPL協議的詳細內容見http://www.gnu.org/licenses/gpl-3.0.en.html
關於GPL協議的幾點說明如下:
你可以——
取得軟件源碼:你可以根據自己的需求執行GPL協議的自由軟件;
復制:你可以自由復制該軟件;
修改:你可以將取得的源碼進行程序的修改,使之適合自己的工作;
再發行:你可以將你修改過的程序再度自由發行,而不會與原有的編寫者沖突;
回饋:你可以你修改過的程序回饋於社會!
你不能——
修改授權:你不能將一個GPL授權的自由軟件在你修改後將它取消GPL授權;
單純銷售:你不能單純銷售自由軟件;

GUN開發的自由軟件

前面說到史托曼開始GNU項目進行開發大量的自由軟件,隨著這些軟件的成功開發和廣泛使用,GNU的熟知度也越來越廣。現在被廣泛使用的知名的自由軟件有:
Emacs
GCC(GNU Compiler Collection C程序編譯器)、G++(C++編譯器)
GUN C Library(GLIBC)
Bash Shell


GCC與G++

首先GCC是the GNU Compiler Collection的意思,是GNU的一個編譯器集合,裡面包含了多種編譯器及相關工具,如gcc、g++。GCC是多種主要編程語言編譯器的整合(或叫集成)發布。這些編程語言目前包含C, C++, Objective-C, Objective-C++, Java, Fortran和Ada。參見Using the GNU Compiler Collection

gcc是GNU的C編譯器(GNU C Compiler),是GNU Compiler Collection的一部分;
g++是GNU的C++編譯器(GNU C++ Compiler),也是GNU Compiler Collection的一部分;

GDB

GDB是GNU Project的一個調試程序(GNU Debugger), 允許你查看一個程序執行時內部的具體執行邏輯,或當它崩潰時這個程序執行了什麼。
GDB可以做四個主要的事情(及它所支持的其它功能)以幫助你發現程序的bug:
1. 開始一個程序,指定任何可能影響它行為的事情;
2. 讓你的程序以指定的條件暫停;
3. 當程序停止時檢查發生了什麼;
4. 改變你程序中的變量或數據,以便你試驗導致你程序bug的影響因素,並了解更多其它的信息。

GDB可以調試以下編程語言編寫的程序:Ada、C、C++、Objective-C、Pascal等,這些程序可能執行在相同的機器上(本地調試),也可能執行在不同的機器中(遠程調試),GDB可以運行在最愛歡迎的Unix和Microsoft Windows上。
參考閱讀:The GNU Project Debugger

Makefile

Makefile是程序編譯的規則,makefile記錄著整個工程的編譯規則(如源文件的編譯順序、依賴關系等),通過make工具進行編譯。make根據makefile定義的規則將源代碼編譯成二進行文件。在跨平台(特別是類Unix系統中)的程序中,一般都會通過makefile來進行編譯。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved