在 UNIX系統下面,使用 cc 命令最常用的選項主要有如下幾個(以 my_prog.c 為例進行說明)
$cc -c my_prog.c <cr> (-c 選項表示只編譯、產生中間文件,不進行鏈接、並產生最終的可執行程序)
$cc my_prog.c <cr>(編譯、鏈接,並產生預設的可執行程序。預設的可執行文件名為:a.out)
$cc -o my_runfile my_prog.c <cr>(-o 選項用於生成用戶指定的可執行程序名,代替預設的可執行文件名:a.out。這里的可執行文件名是:my_runfile)
至於說還有很多其他選項,例如:-L系統庫名字(*.LIB)等,那就需要在平時的編程過程中去體會了。
另外,如果是在 Linux 系統下面進行 C 語言的開發,使用的是 gcc 編譯器。其選項和 cc 編譯器相同。
㈡ 如何在Linux中安裝cc和gcc編譯器
方法如下:
一:掛載yum源,在終端輸入指令:mount -o loop xxxx.iso /media/CentOS/
說明:xxxx.iso 是你的鏡像文件名(注意路徑正確)
/media/Centos/ 這個是掛載後文件地址,Centos是自己建的,也可以自己選著路徑;
二:修改/etc/yum.repos.d/CentOS-Media.repo
1.首先進入文件: vi /etc/yum.repos.d/CentOS-Media.repo
2.修改文件如下:
[c6-media]
name=CentOS-$releasever - Media #名字而已
baseurl=file:///media/Centos #剛剛掛載鏡像的地址
gpgcheck=1
enabled=1
gpgkey=file:///etc/media/Centos/RPM-GPG-KEY-CentOS-6
3. 退出保存。
4.輸入指令:gcc -v 看看有沒有反應。
㈢ 為什麼原子操作都起內存屏障的作用
(1) 進行零次或一次對齊內存訪問的匯編指令是原子的。
(2) 如果在讀操作之後、寫操作之前沒有其它處理器佔用內存匯流排,那麼從內存中讀取數據、更新數據並把更新後的數據寫回內存中的這些」 讀—修改—寫」匯編語言指令是原子的。當然,在單處理器系統中,永遠都不會發生內存匯流排竊用的情況。
(3) 操作碼前緣是lock位元組的」 讀—修改—寫」匯編語言指令即使在多處理器系統中也是原子的。當控制單元檢測到這個前綴時,就」鎖定」內存匯流排,直到這條指令執行完成為止。因此,當加鎖的指令執行時,其它處理器不能訪問這個內存單元。
(4) 操作碼前綴是一個rep位元組的匯編語言指令不是原子的,這條指令強行讓控制單元多次重復執行相同的指令。控制單元在執行新的循環之前要檢查掛起的中斷。
在你編寫C代碼程序時,並不能保證編譯器會為a=a+1或甚至像a++這樣的操作使用一個原子指令。因此,Linux內核提供了一個專門的atomic_c類型和一些專門的函數和宏(參見表5-4),這些函數和宏作用於atomic_t類型的變數,並當作單獨的、原子的匯編語言指令來使用。在多處理器系統中,每條這樣的指令都有一個lock位元組的前綴。
㈣ makefile command的cc -c,cc -o是什麼意思啊
CC
是一個全局變數,它指定你的Makefile所用的編譯器,一般默認是gcc
你可以顯示的指定,比如說
CC=gcc
-c
-o
都是gcc的參數
CC
-o相當於在中端中執行gcc
xx.c
-o
xx.o
想要了解更多makefile編寫方法,可以下個文檔看看,半天就能搞定。