導航:首頁 > 源碼編譯 > cc編譯器原子操作

cc編譯器原子操作

發布時間:2023-08-03 14:30:32

㈠ 怎樣利用CC命令在Unix上編譯C程序

在 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編寫方法,可以下個文檔看看,半天就能搞定。

閱讀全文

與cc編譯器原子操作相關的資料

熱點內容
福州看病預約用什麼小程序app 瀏覽:238
php保留兩位小數不四捨五入 瀏覽:292
黑馬程序員路徑大全 瀏覽:1000
saas平台PHP 瀏覽:333
雲伺服器科學計算配置怎麼選 瀏覽:649
jar解壓命令 瀏覽:609
php正則問號 瀏覽:299
無線已加密不可上網是怎麼了 瀏覽:464
什麼app可以免費做手機 瀏覽:375
異性下載什麼app 瀏覽:680
51單片機程序單步視頻 瀏覽:241
家庭寬頻如何連接伺服器 瀏覽:119
汽車高壓泵解壓 瀏覽:772
上門正骨用什麼app 瀏覽:761
安卓為什麼免費使用 瀏覽:398
加密貨幣都有哪些平台 瀏覽:629
python和matlab難度 瀏覽:392
python爬蟲很難學么 瀏覽:575
小米解壓積木可以組成什麼呢 瀏覽:818
為什麼滴滴出行app還能用 瀏覽:568