gnu編譯
❶ gnu提供的編譯工具包括
GNU 提供的編譯工具包括匯編器as、C編譯器gcc、C++編譯器g++、連接器ld和二進制轉換工具obj。
基於ARM平台的工具分別為arm-linux-as、arm-linux-gcc、arm-linux-g++、arm-linux-ld 和arm-linux-obj。
GNU的所有開發工具都可以從www.gnu.org下載,基於ARM的工具可從www.uclinux.org獲得。
GNU的編譯器功能非常強大,共有上百個操作選項,這也是這類工具讓初學者頭痛的原因。不過,實際開發中只需要用到有限的幾個,大部分可以採用預設選項。
❷ windows怎麼安裝gnu c編譯器
Windows安裝GNU編譯器使用makefile
一、下載安裝MinGW
下載後,運行程序:mingw-get-inst-20120426.exe,選擇download latest repository catalogues. 選擇編譯器是勾選C Compiler 與C++ Compiler,點擊next進行下載及安裝。
二、設置環境變數
右擊計算機->屬性->高級系統設置->環境變數,在系統變數中找到PATH,將MinGW安裝目錄里的bin文件夾的地址添加到PATH裡面,(注意:PATH里兩個目錄之間以英文的;隔開)。打開MinGW的安裝目錄,打開bin文件夾,將mingw32-make.exe重命名為make.exe。
三、測試GCC編譯
創建一下test.c,用記事本打開該文件,將以下內容復制到文件中。
[cpp] view plain
#include<stdio.h>
#include<stdlib.h>
int main(void){
printf("Hello, world!\n");
system("pause");
return 0;
}
打開命令提示符,更改目錄到test.c的位置,鍵入
gcc -o test.exe test.c
可生成test.exe可執行文件。
四、測試makefile
新建文件夾,在文件夾內創建max_num.c、max.h、max.c、makefile四個文件。
max_num.c內容如下:
[cpp] view plain
#include <stdio.h>
#include <stdlib.h>
#include "max.h"
int main(void)
{
printf("The bigger one of 3 and 5 is %d\n", max(3, 5));
system("pause");
return 0;
}
max.h內容如下:
[cpp] view plain
int max(int a, int b);
max.c內容如下:
[cpp] view plain
#include "max.h"
int max(int a, int b)
{
return a > b ? a : b;
}
makefile內容如下:
[html] view plain
max_num.exe: max_num.o max.o
gcc -o max_num.exe max_num.o max.o
max_num.o: max_num.c max.h
gcc -c max_num.c
max.o: max.c max.h
gcc -c max.c
注意所有含有gcc的行前面是一個製表符,而非若干空格。否則可能會保存,無法編譯。
打開命令提示符,更改目錄到新建的文件夾,鍵入make,可生成指定的應運程序。
測試完成。
❸ 如何在GNU Emacs環境下編譯並運行C/C++程序
學習C/C++的朋友有沒有想過完完全全的在Linux環境下開發軟體!?我想過,可能是因為個人對Windows平台有些偏見,或者說個人不是非常喜歡
在Windows下寫程序的感覺,總覺得有那麼一層膜隔閡著我們,不像Linux,可以做強大的伺服器,在終端下只需要使用簡簡單單的命令便能完成相當復
雜的事情,是不是感覺很高深!?還有很多很多開源項目,Emacs也算一個吧!!!
呵呵,談到在Linux下編程,我們不得不提這兩款編輯器:vi/vim和Emacs(確切的說Emacs的功能已經遠遠超出了編輯器,使用它我們可能收
發郵件,玩游戲,排版等等)。Emacs的強大不得不讓我們對設計出該編輯器的大師們發出崇高的敬意和贊嘆,Emacs強大之處不僅僅局限於編輯功能,還
提供的許多自定義選項,還有我們可以不需要動滑鼠便可完成日常工作(對於大多數人來說這可能不太現實),下面我只是簡要的介紹如何使用Emacs編譯/運
行C/C++程序,文中相關命令可以參考本人其他博文。
Emacs有很多版本,如Gnu Emacs、XEmac等等。而且Emacs在各個平台下均能表現的非常出色,前提是你要熟悉它。
首先,再次說明本人所使用的操作系統是rhel 6.2,已經安裝GNU Emacs 23.1.1和gcc version
4.4.6,注意Emacs只是一個編輯器,在我們程序員看來(其實我們也可以將其看作IDE,如果使用的比較熟練的話),最起碼對於我這種菜鳥來說,還
不能十分熟練的玩轉Emacs,它實在是太強大了,以至於有很多知識需要去記憶(不僅僅是快捷鍵)。
OK,不啰嗦了,下面進入正題:
1.啟動Emacs,在終端輸入「emacs&」命令後回車(你也可以輸入「emacs」命令,不過當你在使用Emacs的時候,當前終端
就不為你工作了;並且如果你熟練使用Emacs的話也可以輸入「emacs
-nw」命令以啟動非X視窗下的Emacs),至於後面為什麼要加一個「&」符,這是Linux裡面的基本知識,加上「&」符後會在當前
終端下產生一個子進程以運行Emacs而不會對當前終端的工作造成任何影響,這里我們鍵入「emacs –nw」命令,啟動界面如圖1所示;
圖1 鍵入「emacs –nw」命令後,Emacs的啟動界面
2.打開/新建文件,進入Emacs界面後,鍵「C-x
C-f」以打開/創建一個新的文件(如圖2所示),建議以C/C++語言里所規定的擴展名來指定創建的文件的擴展名,雖然在Linux下面我們不是十分強
調文件的擴展名,但是如果你選擇正當的擴展名的話,將有助於高亮代碼,並且Emacs會根據我們創建的文件的擴展名以進行不同語言(要知道,Emacs不
只是為了C/C++程序員設計的)編碼風格的縮進;
圖2 鍵「C-x C-f」,輸入文件名以打開/創建一個新的文件
3.編輯文件,鍵「C-x C-s」存檔,本人測試的代碼如下:
[cpp] view plain
#include <iostream>
int main( ) {
std::cout << "Hello, Emacs!!!"
<< std::endl;
}
4.編譯文件,這里我介紹兩種方法。
法1:常規方法,參考Learning Gnu
Emacs,我們可以這樣做:鍵「M-x」,此時在minibuffer中會顯示「M-x」字樣,輸入「compile」命令後默認會顯示
「Compile command: make -k」字樣,此時把「make -k」刪除後,運行相關編譯命令(如現在我們應該鍵入「g++
test.cpp –o test」),如圖3所示;
圖3 minibuffer下鍵入「g++ test.cpp –o test」命令以編譯源文件
法2:我想大多C/C++程序員會選擇第二種編譯方法,同樣的,鍵「M-x」,輸入「eshell」或「shell」命令,進入「eshell」或
「shell」緩沖區,這里我們鍵入的命令是「eshell」,然後同樣的鍵入「g++ test.cpp –o
test」命令以編譯源文件,如圖4所示;
圖4 eshell下鍵入「g++test.cpp –o test」命令以編譯源文件
5.運行編譯後的可執行文件,同樣的按照第4步中的打開eshell緩沖區,輸入相關命令即可執行編譯後文件,這里我們應該輸入「./test」命令,如圖5所示。
圖5 輸入「./test」命令以執行編譯後文件
注意:當我們進入其他緩沖區後,再想切換到編輯過的緩沖區可以鍵入「C-b
buffername」以切換到目的緩沖區。注意編輯(修改)後的緩沖區的名字格式為「*buffername*」,如上面我們切換到
「test.cpp」緩沖區應該buffername應為「test.cpp」,在我們打開「eshell」緩沖區之前我們已將其保存過了,切換到
「test.cpp」後再想切換到之前打開的「eshell」緩沖區的buffername應為「*eshell*」,這個緩沖區我們修改過了;
❹ 如何使用GNU編譯器GCC來編譯Cortex-M3
MinGW是指只用自由軟體來生成純粹的Win32可執行文件的編譯環境,它是Minimalist GNU on Windows的略稱。
實際上 MinGW 並不是一個 單純的C/C++ 編譯器,而是一套 GNU 工具集合。除開 GCC 以外,MinGW 還包含有一些其他的 GNU 程序開發工具 (比如 gawk bison 等等)。
開發 MinGW 是為了那些不喜歡工作在 Linux(FreeBSD) 操作系統而留在 Windows 的人提供一套符合 GNU 的 GNU 工作環境。
所以,使用 MinGW 我們就可以像在 Linux 下一樣使用 GNU 程序開發工具。
GCC 就是 MinGW 的核心所在,GCC 是一套支持眾多計算機程序語言的編譯系統,而且在語言標準的實現上是最接近於標準的。並且 GCC
幾乎可以移植到目前所有可用的計算機平台。(我的電腦上就還裝有 DevKitPro,裡麵包含 GCC 的 ARM(for GBA/DS/GP32)
和 MIPS(for PSP) 版本。)
GCC 本身不像 VC 那樣擁有IDE 界面(在 Windows 上也存在 Dev C++ 之類的支持 MinGW 編譯器的
IDE)。源代碼編輯你可以選用任何你喜歡的文本編輯器(據說微軟的開發人員包括 VC 的開發都不用 VC 所帶的 IDE 編輯器,而是選用 GNU
的 VIM 編輯器)。然後使用 make 等工具來進行軟體項目的編譯、鏈接、打包乃至發布。而像 cvs(svn)
源代碼版本控制工具可以讓世界上任何一個角落的人都可以參與到軟體項目中來。
2.下載MinGW
一種方法是到Sourceforge(http://sourceforge.net/project/showfiles.php?group_id=2435)下載一個MinGW-2.0.0-3.exe。
但是我配置的時候我電腦上安裝了codeblocks,已經自帶了MinGW。
3.環境變數的配置
在(系統屬性-->高級-->環境變數-->系統變數 中)(以下目錄都根據自己的電腦MinGW所在位置不同而改變)
a.在PATH的值中加入「C:\Program Files\MinGWStudio\MinGW\bin」。這是尋找gcc編譯器的路徑。如果PATH中還有其他內容,需要用英文狀態下分號進行分割
b.新建LIBRARY_PATH變數,在其值中加入「C:\Program Files\MinGWStudio\MinGW\lib」。這是標准庫存放的路徑。
c.新建C_INCLUDE_PATH變數,在其值中加入「C:\Program Files\MinGWStudio\MinGW\include」。這是Include查找頭文件的路徑。
4.驗證gcc是否正常運行
在cmd控制台窗口下面,輸入gcc -v。若已經成功安裝好,會顯示gcc的版本信息。
❺ gnu編譯器是什麼意思
GCC(GNU Compiler Collection,GNU編譯器集合),是一套由 GNU 開發的編程語言編譯器。以及大部分UNIX系統的程序庫和工具。
GNU是「GNU's Not Unix」的遞歸縮寫。
❻ 怎麼樣用DEV C++下的GNU編譯程序
先到 http://www6.skycn.com/soft/4639.html 下載一個Dev-C++ V4.9.9.2 , 安裝後運行程序。
新建一個Win32應用程序,Dev-C++會自動生成一個程序框架,直接按F9編譯運行就可以看見效果了。
❼ linux中gnu的含義是什麼
1.3.2 GNU知識
GNU的全稱為GNU's not unix,意思是「GNU不是UNIX」,GNU計劃,又稱革奴計劃,是由Richard Stallman在1984年公開發起的,是FSF的主要項目。前面已經提到過,這個項目的目標是建立一套完全自由的和可移植的類Unix操作系統。
GNU類Unix操作系統是由一系列應用程序、系統庫和開發工具構成的軟體集合,例如:Emacs 編輯軟體、gcc 編譯軟體、bash 命令解釋程序和編程語言,以及gawk (GNU』s awk) 等,並加上了用於資源分配和硬體管理的內核。
但是GNU自己的內核Hurd仍在開發中,離實用還有一定的距離。因此,這個GNU系統並沒有流行起來。現在的GNU系統通常是使用Linux系統的內核、加上GNU項目貢獻的一些組件,以及其他相關程序組成的,這樣的組合被稱為GNU/Linux操作系統。
到1991年Linux內核發布的時候,GNU項目已經完成了除系統內核之外的各種必備軟體的開發。在Linus Torvalds和其他開發人員的努力下, GNU項目的部分組件又運行到了Linux內核之上,例如:GNU項目里的Emacs、gcc、bash、gawk等,至今都是Linux系統中很重要的基礎軟體。內容來自老男孩作者出版書籍。
❽ GNU C的編譯器 指的就是 GCC 嗎
(short for)gnu compiler collection,gnu是the Free Software Foundation組織的軟體項目,主要目的是建立一個開源的類UNIX操作系統。
不過C語言初學者一般用TC集成環境編譯,GCC的安裝和使用並不簡單, 不過它的確可以算是當今世紀最好的compiler了。
❾ 如何使用GNU GCC編譯MQX應用
1. 安裝MQX4.0,在飛思卡爾官網把MQX的安裝文件下載下來。
2. 安裝好之後會在安裝目錄下生成如下圖所示的子目錄。
build目錄:包含了飛思卡爾不同平台不同編譯器的相關庫的Makefile文件。具體內容如下列表示意圖所示:
build
+---common
| +---make ... shared Makefiles with global settings, variables and paths
+--- ... board-specific folder
| +---make ... folder contains mass-build Makefile for all libraries
| +---tools ... tool-specific global settings, variables and paths
| +---bsp ... BSP Library Makefile
| +---psp ... PSP Library Makefile
| +---mfs ... MFS Library Makefile
| +---rtcs ... RTCS Library Makefile
| +---shell ... Shell Library Makefile
| +---usbd ... USB Device Library Makefile
| +---usbh ... USB Host Library Makefile
+---
+---make
3. 安裝CodeWarrior Development Studio V10.5編譯器。在飛思卡爾官網把CW10.5的安裝文件下載下來。安裝CW10.5時,請注意安裝目錄名稱不要帶空格。
CW10.5的Cross_Tools目錄已經自帶了GNU GCC for ARM Cortex-M4內核的交叉編譯工具鏈。
4. 安裝MinGW(Minimalist GNU on Windows) GNU工具集,在Windows下GNU GCC需要使用make.exe和sed.exe等工具。
5. 上述軟體安裝完畢後,按照實際安裝情況,修改編譯MQX所需的交叉工具鏈的目錄。
1).修改全局宏定義腳本$MQX_DIR\build\common\make\global.mak
指定GNU 交叉工具鏈的安裝路徑TOOLCHAIN_ROOTDIR宏定義,如:
TOOLCHAIN_ROOTDIR = C:/Freescale/CW10_5
2).指定編譯某一硬體平台需要GNU GCC編譯器的具體安裝路徑。如需要編譯twrk60d00m這款Demo板,修改腳本文件$MQX\build\twrk60d100m\make\tools\cw10gcc.mak,指定AS,CC,CX,AR,LD等工具的可執行文件。
#------------------------------------------------------------
# toolchain settings
#------------------------------------------------------------
AS = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-gcc.exe
CC = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-gcc.exe
CX = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-gcc.exe
AR = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-ar.exe
LD = $(TOOLCHAIN_ROOTDIR)/Cross_Tools/arm-none-eabi-gcc-4_7_3/bin/arm-none-eabi-gcc.exe
6. 修改完畢上述腳本後,就可以開始使用GNU GCC編譯MQX。在windows命令窗口下進入需要編譯的目錄,如Tower K60的編譯目錄:$MQX\build\twrk60d100m\make。在命令行下輸入make指令:
C:\Freescale\Freescale_MQX_4_0\build\twrk60d100m\make>mingw32-make build TOOL=cw10gcc CONFIG=debug
這條make指令能夠將整個MQX進行編譯,並生成bsp.a,psp.a,shell.a,rtcs.a,usbd.a,usbh.a等庫文件。
7. MQX系統庫編譯完畢後,可以進行應用程序的編譯。在命令窗口進入需要編譯的應用程序目錄。如需要編譯hello常式代碼,進入$MQX\mqx\examples\hello\make目錄,在命令下輸入make命令:
C:\Freescale\Freescale_MQX_4_0\mqx\examples\hello\make>mingw32-make BOARD=twrk60d100m TOOL=cw10gcc CONFIG=debug LOAD=intflash build
GNU GCC將會編譯應用程序代碼,並與MQX的bsp.a,psp.a的庫文件鏈接,生成.elf格式的可以執行文件。
8. 下載調試.elf可執行文件。在CW10.5中New創建一個Bareboard Project工程,選擇需要使用的下載調試器,並且選定使用GNU GCC作為編譯器。在菜單Properties --> Run/Debug Setting中選擇需要下載的目標文件。然後通過菜單Run-->Debug下載調試程序。
❿ GNU是個啥 是個標准,軟體還是編譯器還是一個總稱
GNU是一個自由軟體工程項目。下面的文字沒有具體解釋GNU是哪幾個單詞的所寫,但從整體上說明了GNU工程是怎麼回事,希望對你有幫助。
GNU工程已經開發了一個被稱為「GNU」(GNU是「不是UNIX」的縮寫)的、對Unix向上兼容的完整的自由軟體系統(free software system)。由Richard Stallman完成的最初的GNU工程的文檔被稱為『GNU宣言』,該宣言已經被翻譯成多種其它語言。我們還有創作與1983年的GNU工程創始宣言。
上述單詞「free」指的是自由(freedom),而不是價格。你可能需要或者不需要為獲取GNU軟體而支付費用。不論是否免費,一旦你得到了軟體,你在使用中就擁有三種特定的自由。首先是復製程序並且把它送給你的朋友或者同事的自由;而後是通過獲取完整的源代碼,按照你的意願修改程序的自由;最後是發布軟體的改進版並且有助於創建自由軟體社團的自由。(如果你重新發布 GNU軟體,你可能對分發拷貝這項體力勞動收費,也可能不收費。)
在1983年構思GNU工程是為了提供一種找回在計算機界早期的盛行的合作精神的方式--為了使合作成為可能而排除有私有軟體所有者給合作造成的障礙。
在1971年,當Richard Stallman開始他在MIT的職業生涯時,他工作於一個專門使用自由軟體的工作組。即使計算機公司也經常發布自由軟體。程序員可以自由地相互合作,就象他們通常所作的那樣。
到了80年代,幾乎所有的軟體都是私有的,這意味著它有一個不允許並且預防用戶合作的擁有者。這就使得GNU工程成為必要的了。
每個計算機的使用者都需要一個操作系統;如果沒有自由的操作系統,那麼如果你不求助於私有軟體,你甚至不能開始使用一台計算機。所以自由軟體議事日程的第一項就是自由的操作系統。
一個操作系統不僅僅是一個內核;它還包括編譯器、編輯器、文本排版程序,電子郵件軟體,和許多其他東西。因此,創作一個完整的操作系統是一鄉十分龐大的工作。它將耗費太多的年頭。
由於Unix的全局設計已經得到認證並且廣泛流傳,我們決定使操作系統與Unix兼容。同時這種兼容性使Unix的使用者可以容易地轉移到GNU上來。
自由的,類似於Unix的內核的初始目標已經達到了。到90年代,我們已經發現或者完成了除了內核之外的所有主要成分。而Linux,一個自由的內核,由Linux Torvalds開發了。把Linux和幾乎完成的GNU 系統結合起來,就構成了一個完整的操作系統:一個基於Linux的GNU系統。估計目前大約有十萬人在使用基於Linux的GNU系統,包括Slackware、Debian、Red Hat以及其它。