linux C/C++開發環境搭建指南

2021-12-30 C語言專家集中營

Ubuntu中沒用自帶C/C++開發環境,需要用戶自己配置。在UBUNTU中文論壇中的一些帖子集合。

一、安裝基本開發環境

本人想學習一下Linux下的C,C++程序開發,這幾天一直在研究Linux下的C語言編譯環境的建立,因為新裝好的Ubuntu裡面缺少函數庫文件,所以無法編譯最簡單的C語言文件,故要先配置一番,這幾天也有一點心得,寫下來和大家一起學習。
原來我以為安裝配置非常麻煩,後來發現在新立得的幫助下很快就能配置好(前提你的源的網速比較快)。
我先安裝了一個新的Ubuntu6.10,然後按照Wiki裡的幫助先配置好了源、輸入法、中文環境等。然後開始配置編譯環境。


1、配置GCC


剛裝好的系統中已經有GCC了,但是這個GCC什麼文件都不能編譯,因為沒有一些必須的頭文件,所以要安裝build-essential這個軟體包,安裝了這個包會自動安裝上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必須的軟體和頭文件的庫。
可以在新立得裡面搜索build-essential或輸入下面命令:

[plain] view plain copy

sudo apt-get install build-essential  



安裝完成後寫一個C語言程序testc.c測試一下。

[cpp] view plain copy

#include<stdio.h>  

int main()  

{  

   printf("Hello Ubuntu!\n");  

   return 0;  

}  

[plain] view plain copy

$ gcc testc.c -o testc  

$ ./testc  



顯示 
Hello Ubuntu!
這樣,C語言編譯器就安裝成功了;


2安裝GTK環境


安裝GTK環境只要安裝一個gnome-core-devel就可以了,裡面集成了很多其他的包。除此之外還要轉一些其他的東西,如libglib2.0-doc、libgtk2.0-doc幫助文檔,devhelp幫助文檔查看,glade-gnome、glade-common、glade-doc圖形界面設計等。

[plain] view plain copy

sudo apt-get install gnome-core-devel  

sudo apt-get install libglib2.0-doc libgtk2.0-doc  

sudo apt-get install devhelp  

sudo apt-get install glade-gnome glade-common glade-doc  



安裝完成後我們也同樣做個測試程序

[cpp] view plain copy

#include<gtk/gtk.h>  

void hello(GtkWidget *widget,gpointer data)  

{  

g_print("Hello Ubuntu!\n");  

}  

gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)  

{  

g_print ("delete event occurred\n");  

return(TRUE);  

}  

void destroy(GtkWidget *widget,gpointer data)  

{  

gtk_main_quit();  

}  

int main( int argc, char *argv[] )  

{  

GtkWidget *window;  

GtkWidget *button;  

gtk_init (&argc, &argv);  

window=gtk_window_new (GTK_WINDOW_TOPLEVEL);  

gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);  

gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);  

gtk_container_set_border_width (GTK_CONTAINER (window), 10);  

button = gtk_button_new_with_label ("Hello Ubuntu!");  

gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);  

gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));  

gtk_container_add (GTK_CONTAINER (window), button);  

gtk_widget_show (button);  

gtk_widget_show (window);     

gtk_main();     

return(0);  

}  


用下面命令編譯運行

[plain] view plain copy

$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`  

$ ./gtktest  



會顯示一個帶有一個按鈕的窗口,點擊按鈕以後窗口關閉,命令行顯示Hello Ubuntu!

GTK測試


c語言測試


二、安裝IDE開發工具
著名的開發工具有Kdeveloper, Anjuta, Eclipse+CDT。 
其中kdeveloper是KDE平臺得,在Gnome平臺下使用需要安裝一大堆KDE的東西,不喜歡,放棄了,雖然都傳說Kdeveloper的功能是如何強大。而Eclipse+CDT用起來似乎不錯,但是主要有兩點不舒服,一是不能代碼自動完成,二是編譯速度比較慢。
Eclipse + CDT的安裝配置。

Java運行環境以及Eclipse3.3.0安裝就不具體介紹。 
詳細情況見:http://blog.chinaunix.NET/u/21684/showart_384208.html 
1。下載CDT(http://www.eclipse.org/cdt/downloads.PHP)(只能下載4.0.x,如果是Eclipse3.3.0其他的選擇合適的版本) 
2。安裝CDT插件(links方法來安裝插件的方法,便於對插件的管理) 
A.在eclipse所在的目錄(ECLIPSE_HOME)新建文件夾cdt 
在文件夾cdt中新建文件夾eclipse(不要詫異就是eclipse) 
B. 把下載的cdt-master-4.0.0.zip中的內容解壓到/ECLIPSE_HOME/cdt/eclipse中 
C.在ECLIPSE_HOME新建文件夾links 
在新建的links中添加文件cdt.link 文件的內容為 path=/ECLIPSE_HOME/cdt
比如我的就是path=/opt/eclipse/cdt 
D.這樣就完成了CDT插件的安裝工作了,啟動eclipse 就看到多了c,c++開發環境


三、Anjuta安裝配置
A. ubuntu feisty (for gusty, see below) repository (only i386 and only binaries)

1. Add deb http://anjuta.org/apt ./ in your /etc/apt/sources.list
2. sudo apt-get update
3. sudo apt-get install anjuta
4. sudo apt-get install anjuta-dev libgbf-dev libgdl-dev (if you want to write anjuta plugins or report bugs) 


Note!! If you have installed older anjuta-2.2.0 previously using this repository, make sure to remove the file /etc/apt/preferences or remove the following version pin from the file before following the above steps. The version pin is no longer needed:

B. Ubuntu gusty repository

1. Add deb http://ppa.launchpad.Net/robster/ubuntu gutsy universe in your /etc/apt/sources.list
2. sudo apt-get update
3. sudo apt-get install anjuta
4. sudo apt-get install anjuta-dev libgbf-dev libgdl-dev (if you want to write anjuta plugins or report bugs)

注意: 建議使用新立得安裝。


題外話 QT VS GTK /GTK+

Qt是一個多平臺的C++圖形用戶界面應用程式框架。它提供給應用程式開發者建立藝術級的圖形用戶界面所需的所用功能。Qt是完全面向對象的很容易擴展,並且允許真正地組件編程。自從1996年早些時候,Qt進入商業領域,它已經成為全世界範圍內數千種成功的應用程式的基礎。Qt也是流行的Linux桌面環境KDE 的基礎,KDE是所有主要的Linux發行版的一個標準組件。


Qt支持下述平臺:
* MS/Windows - 95、98、NT 4.0、ME、和2000 * Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平臺 * Macintosh - Mac OS X * Embedded - 有幀緩衝(framebuffer)支持的Linux平臺。 


Qt是Trolltech公司的一個產品。Qt被按不同的版本發行:


Qt企業版和Qt專業版 提供給商業軟體開發。它們提供傳統商業軟體發行版並且提供免費升級和技術支持服務。如果要獲得最新報價,請瀏覽Trolltech公司網站的價格和可行性頁面,或者與sales@trolltech.com聯繫。企業版比專業版多一些擴展模塊。


Qt自由版是Qt僅僅為了開發自由和開放源碼軟體 提供的Unix/X11版本。在Q公共許可證和GNU通用公共許可證 下,它是免費的。最新的版本可以在這裡下載。


Qt/嵌入式自由版是Qt為了開發自由軟體提供的嵌入式版本。在GNU通用公共許可證下,它是免費的。


用C的很自然就選擇了gtk+, C++的選擇了QT。一般選擇。QT出來的比C++標準早,所以和標準的C++還是區別的。聽說QT的C++並不純。gtk+也有其它語言綁定,C++的gtkmm,python的pygtk.跨平臺大家都能做到,但wxWidget在跨平臺上好像選擇的人更多 些。 
我用了不短的時間就是在選擇到底在Linux下用什麼工具來編程,現在選擇了Qt。我認為如果要編一些小程序可以使用任何一種工具,但是我認為不管真樣選擇,我們不能倒退到以前那種存脆的C下全部自己動手的那種局面。那樣確實鍛鍊人培養人,但是人的時間是有限的,當我們要面對比較大的程序的時候QT這種是不錯的選擇。只是現在用的人太少。QT在windows下能和VC關聯起來使用,這對於我們這些用慣VC 的人實在是一個好消息!我現在還僅僅用的是開源版的,以後有機會用它的企業版我想能用的更好。

相關焦點

  • 玩轉嵌入式之如何在Linux系統中搭建tftp伺服器·圖文視頻
    嵌入式linux最常用到tftp命令來完成開發板和Linux系統之間的的文件傳輸,避免了頻繁的U盤拷貝過程。我們知道,Windows下使用「tftpd32.exe」這款軟體可以很方便地在Windows下搭建的tftp伺服器。
  • Linux環境下的USB攝像頭驅動開發
    本文從Linux內核的USB核心模塊出發,遵循Video4Linux接口標準,採用urb策略與內存映射的方式以提高數據讀取速度,設計開發了基於Linux環境下的USB攝像頭驅動,並在ARM9實驗平臺上對該驅動程序進行了測試與分析。
  • 推薦幾款可以直接在手機上編程的app(包含Java、C、Python等)
    大部分都不需要root,可以直接編寫程序並運行,下面我簡單介紹一下這3個app的安裝和簡單使用,主要內容如下:一.AIDE集成開發環境:這個主要是用來寫java代碼(創建工程、寫小遊戲等),當然也可以寫c++代碼,只不過需要安裝對應的插件才行,自帶自動補全的功能,界面乾淨、整潔,使用起來不錯,下面我介紹一下這個app的安裝和簡單使用:
  • C++遊戲伺服器開發常用工具介紹
    在軟體開發周期中,調試並修正缺陷的時間可能遠多於寫代碼的時間,有得心應手的工具可以節省調試時間無疑是非常重要的。在linux下一般使用 GDB(GNU symbolic debugger)進行調試,它是一個受通用公共許可證即GPL保護的自由軟體,可以調試多種語言。
  • 凌雲實驗室IGKBoard開發板源碼編譯及燒錄
    所有系統相關源碼維護在凌雲實驗室的官方git伺服器上,接下來我們將講解如何使用git倉庫上的源碼搭建交叉編譯環境、編譯製作系統鏡像文件。2.1 源碼下載及說明該項目測試開發環境為Ubuntu-20.04, 首先在Linux伺服器上使用 git 命令克隆下載該項目源碼。如果沒有 git 命令,則首先安裝 git 命令。
  • 電路城樹莓派試用活動第一周:開發環境的搭建(一)
    樹莓派3B+開發板在Windows系統下進行開發的環境搭建(一)拿到了樹莓派3B+ 開發板後,經過短暫的興奮,終於開始實戰安裝OS了。這次的開發是準備將原先單片機的一個應用進行升級改造,對於這種項目來說,樹莓派的板子主要是替代單片機進行GPIO口操作,同時建立一個友好的人機互動界面,所以一開始規劃就從這兩點出發,新增外設儘可能簡單,不考慮外接顯示器,一切都用WiFi無線功能,搭建Windows下遠程連接進行開發的環境。
  • 教你進行視頻直播聊天室源碼的開發搭建
    一、 如何開發視頻直播聊天室源碼可以用這套開發語言進行視頻直播聊天室源碼開發:1、 安卓端:Java2、 IOS端:objective-c3、 Web端:PHP4、 存儲方面,可以用Redis和Mysql5、 即時通訊方面使用Node.js。
  • 利用Python開發App
    最近想到嘗試用python開發一款app,google搜索了一番後,發現確實有路可尋,目前也有了一些相對成熟的模塊,於是便開始了動手實戰,過程中發現這其中有很多坑,好在最終依靠google解決了,因此小記一番。準備工作利用python開發app需要用到python的一個模塊–kivy,kivy是一個開源的,跨平臺的Python開發框架,用於開發使用創新的應用程式。
  • 編程大佬總結的50點學習C+的方法,一針見血,少走彎路
    ——他們都是集成開發環境,而我們要學的是一門語言; 5.不要放過任何一個看上去很簡單的小編程問題——他們往往並不那麼簡單,或者可以引申出很多知識點; 如果想學c++並想學好,可以加這個qun,首先是壹壹伍,中間是壹叄玖,最後是伍玖伍
  • 打造低成本直播平臺技術教程(二)服務端技術選型及環境搭建
    上期講了搭建直播平臺的前端技術選型,從開發時間和維護成本考慮,我們選擇了Flutter,也講述了Flutter的一些優勢以及Flutter實現最基礎的直播推拉流的簡單步驟,後面也會帶大家從Flutter環境搭建開始,一步一步進行直播前端剖析。今天本篇講述的是搭建直播平臺中的服務端技術選型。
  • 如何利用Python開發App?
    準備工作利用python開發app需要用到python的一個模塊–kivy,kivy是一個開源的,跨平臺的Python開發框架,用於開發使用創新的應用程式。簡而言之,這是一個python桌面程序開發框架(類似wxpython等模塊),強大的是kivy支持linux、mac、windows、android、ios平臺,這也是為什麼開發app需要用到這個模塊。
  • 手把手教你搭建3款遠程開發環境:Pycharm、Jupyter notebook以及code-server!
    其實就在上周,黃同學已經為大家講述了如何遠程搭建jupyter notebook,今天這篇文章更全,涉及到3個遠程開發環境。雖然你目前不需要遠程辦公,但仍然值得收藏!畢竟手中有糧,才能心中不慌嘛!VScode是一款輕量級的文本編輯器,由於配置靈活以及插件海量的特點,可以搭建很多種語言的項目開發環境,所以深受大家的喜愛,被稱為世界上最強的編輯器!後來有「好事者」覺得不過癮,搞了一個叫code-server的項目——把VScode搬上瀏覽器。沒錯,我們可以把code-server理解為Web服務版的VScode。
  • 利用Python開發App實戰
    (點擊上方公眾號,可快速關注)我很早之前就想開發一款app玩玩,無奈對java不夠熟悉,之前也沒有開發app的經驗,因此一直耽擱了。準備工作利用python開發app需要用到python的一個模塊–kivy,kivy是一個開源的,跨平臺的Python開發框架,用於開發使用創新的應用程式。簡而言之,這是一個python桌面程序開發框架(類似wxpython等模塊),強大的是kivy支持linux、mac、windows、android、ios平臺,這也是為什麼開發app需要用到這個模塊。
  • 手把手教你搭建鴻蒙Hi3518開發和運行環境
    本文教你一步一步搭建鴻蒙的開發和運行環境,有點囉嗦,適合小白。為了省去搭建編譯環境的繁瑣,本次將一個已經搭建好的編譯伺服器製作成鏡像。我們只需要使用這個鏡像即可獲得編譯環境。鏡像文件比較大(超過 8G),請直接找老師獲取,也可以去前言提到的地方下載(建議晚上睡覺時下載)。本次使用的 Ubuntu 是不帶桌面環境的。
  • 10個優秀的Linux發行版本,這份指南幫你挑選屬於你的linux~
    linux的發行版太多了,你得花很多時間去篩選。現在的你或許正在挑選入門的Linux發行版,又或是手頭的現有版本已經玩膩了想要選擇其他版本嘗嘗鮮。為了幫助你縮小搜索範圍,我們整理了一份linux非常非常詳細的發行版列表,所以文章較長~大家可以看作是一份指南,來幫助你選擇最適合你的Linux發行版。
  • 「Unity基礎知識」VR開發環境搭建教程
    那麼現在我們來講講如何才能邁出VR開發的第一步即VR開發環境的搭建。說起VR大家肯定會想到頭盔手柄等等設備, 所以對於開發來說也一樣的, 必須是基於這些硬體設備的,如果沒有設備的支持, VR開發就無從談起,因此在開發之前我們需要準備一套VR設備, 我們這裡以HTC Vive為例。
  • 新手使用 Macos CLion 搭建MySQL源碼debug環境
    看了很多MySQL 的原理分析文章,懂了一些,但是沒有看源碼,總感覺些許缺憾,於是趁著假期,搭建一套debug環境,為後續驗證原理以及自己的猜想做準備
  • 獵鷹與龍飛船基於 Linux,採用 C++、Chromium 與 JS 開發
    自稱為 SpaceX 公司軟體開發團隊的網友表示 Falcon 9 火箭與 C#、MVC 都沒有關係。Falcon、Dragon(此次載人的 Crew Dragon 前一代飛船)的應用主要使用 LabVIEW 進行編碼,用於開發任務和發射控制的 GUI,供工程師和操作員監控車輛遙測並指揮火箭、太空飛行器和護墊支持設備。
  • 手把手教你從零搭建和部署自己的個人博客
    (1)動態博客搭建a. 直接在簡書、CSDN(最近吐槽的比較多)、知乎、博客園等動態博客公共平臺上寫。•優點:簡單•缺點:別人家的東西限制多b. 使用WordPress等成熟框架搭建動態博客 + 伺服器部署•優點:相對簡單•缺點:笨重c.
  • Python機器視覺編程環境搭建方法
    本文以windows平臺為例,介紹使用Python進行計算機視覺編程的開發環境搭建與基本配置,總結了軟體下載地址、安裝方法和開發環境搭建的基本方法,並提供了簡單的代碼示例。想說的是,Python安裝方法與系統、軟體版本等諸多因素有關,要想一步到位比較難,遇到問題多種方式可以混合嘗試。