導航:首頁 > 源碼編譯 > linux下gcc編譯圖形

linux下gcc編譯圖形

發布時間:2022-09-14 10:29:04

A. 如何在linux系統中用gcc編譯並且運行c程序

1、gcc
t
文件名.c
-o
文件名
2、直接運行
o
後面的文件名即可
gcc(選項)(參數)
選項:
-o:指定生成的輸出文件;
-E:僅執行編譯預處理;
-S:將C代碼轉換為匯編代碼;
-wall:顯示警告信息;
-c:僅執行編譯操作,不進行連接操作。
示例:
->gcc
test.c
-o
test
->test

B. 請問linux下,gcc編譯程序的過程(從讀取源文件到製作可執行程序中間所有過程,越詳細越好)

gcc -S *.c 預處理+反匯編

C. 在linux中,怎麼用gcc編譯文件

在終端中輸入 gcc 文件名 -o 目標文件名
然後 ./目標文件名 就行了,沒有目標文件名,自動存為 a
執行 ./a 就行了。

在使用Gcc編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,其中多數參數我們可能根本就用不到,這里只介紹其中最基本、最常用的參數。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。
-c,只編譯,不連接成為可執行文件,編譯器只是由輸入的.c等源代碼文件生成.o為後綴的目標文件,通常用於編譯不包含主程序的子程序文件。
-o output_filename,確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out。
-g,產生符號調試工具(GNU的gdb)所必要的符號資訊,要想對源代碼進行調試,我們就必須加入這個選項。
-O,對程序進行優化編譯、連接,採用這個選項,整個源代碼會在編譯、連接過程中進行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、連接的速度就相應地要慢一些。
-O2,比-O更好的優化編譯、連接,當然整個編譯、連接過程會更慢。
-Idirname,將dirname所指出的目錄加入到程序頭文件目錄列表中,是在預編譯過程中使用的參數。C程序中的頭文件包含兩種情況∶
A)#include <myinc.h>
B)#include 「myinc.h」
其中,A類使用尖括弧(< >),B類使用雙引號(「 」)。對於A類,預處理程序cpp在系統預設包含文件目錄(如/usr/include)中搜尋相應的文件,而B類,預處理程序在目標文件的文件夾內搜索相應文件。

GCC執行過程示例

示例代碼 a.c:
#include <stdio.h>
int main()
{
printf("hello\n");
}
預編譯過程:
這個過程處理宏定義和include,並做語法檢查。
可以看到預編譯後,代碼從5行擴展到了910行。
gcc -E a.c -o a.i
cat a.c | wc -l
5
cat a.i | wc -l
910
編譯過程:
這個階段,生成匯編代碼。
gcc -S a.i -o a.s
cat a.s | wc -l
59
匯編過程:
這個階段,生成目標代碼。
此過程生成ELF格式的目標代碼。
gcc -c a.s -o a.o
file a.o
a.o: ELF 64-bit LSB relocatable, AMD x86-64, version 1 (SYSV), not stripped
鏈接過程:
鏈接過程。生成可執行代碼。鏈接分為兩種,一種是靜態鏈接,另外一種是動態鏈接。使用靜態鏈接的好處是,依賴的動態鏈接庫較少,對動態鏈接庫的版本不會很敏感,具有較好的兼容性;缺點是生成的程序比較大。使用動態鏈接的好處是,生成的程序比較小,佔用較少的內存。
gcc a.o -o a
程序運行:
./a
hello
編輯本段
GCC編譯簡單例子

編寫如下代碼:
#include <stdio.h>
int main()
{
printf("hello,world!\n");
}
執行情況如下:
gcc -E hello.c -o hello.i
gcc -S hello.i -o hello.s
gcc -c hello.s -o hello.o
gcc hello.c -o hello
./hello
hello,world!

D. 怎麼在linux系統下的gcc編譯器中用c語言寫一個直角坐標系作為輸出!

#include "Conio.h"
#include "graphics.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; registerbgidriver(EGAVGA_driver); /* 注冊BGI驅動後可以不需要.BGI文件的支持運行 */
initgraph(&gd, &gm, "");
}
void DrawCoord();
void Drawstg();
void Drawcurve();
int main(void)
{
initgr(); /* BGI初始化 */
DrawCoord();
Drawstg();
Drawcurve();
getch(); /* 暫停一下,看看前面繪圖代碼的運行結果 */
closegr(); /* 恢復TEXT屏幕模式 */
return 0;
}
void DrawCoord() /*畫坐標系*/
{
line(50,40,50,400); /*y軸*/
line(50,400,600,400); /*x軸*/
line(50,40,45,50); /*箭頭*/
line(50,40,55,50);
line(600,400,590,395);
line(600,400,590,405);
outtextxy(35,45,"y");
outtextxy(590,410,"x");
outtextxy(40,410,"O");
}
void Drawstg() /*畫標尺*/
{
int x,y,i;
x=50,y=400;
for(i=0;i<17;i++)
{
line(x+5,y,x,y);
y-=20;
}
x=50,y=400;
for(i=0;i<26;i++)
{
line(x,y-5,x,y);
x+=20;
}
}
void Drawcurve()
{
line(50,400,500,400-250);
}
代碼不敢保沒錯。太難了,如果想單純用C語言寫出圖形,C最大的悲劇就是沒可視化界面。上面的還是在winDOS下調用到底層圖形介面文件,做出個坐標系。在linux下,GCC只是linux下的一個普通c編譯器,做不做的出圖形與它無關。linux本來這個系統就沒有圖形化界面,只是不同linux商自己開發出了圖形桌面。想單純在終端下用C做出圖形,要很了解linux底層的介面文件,驅動等。你可以選擇一些圖形化工具,linux下QT就是個不錯的圖形化工具,圖形自己畫,圖形代碼工具給你生成,你自己只要添加核心的代碼就行

E. linux中如何用gcc編譯用vi寫的c文件

方法/步驟

1、進入linux系統,創建C文件「vim test.c」同時進入vim編輯界面也可以利用指令「touch test.c」創建後,然後「vim test.c」進入vim編輯界面。

F. linux用gcc編譯

運行結果我不給了,自己看:
直接編譯:
gcc main.c compute.c input.c -o power
運行程序
./power
makefile 最簡單,直觀的的編寫方法:
power:main.o compute.o input.o
cc main.o compute.o input.o -o power
main.o:main.c main.h compute.h input.h
cc -c main.c

compute.o:compute.c compute.h
cc -c compute.c
input.o:input.c input.h
cc -c input.c
.PHONY : clean
clean :
rm -f *.o power

保存後成makefile或Makefile推薦使用後者:
make
想重新編譯前運行:
make clean
make
運行程序:
./power
特別說明:cc,rm命令行前有一個tab符,別搞錯了。cc 在linux上是指向gcc的軟符號鏈接,為了兼容其他系統,我們寫的cc。
makefile有更簡寫但不簡單的寫法,不給出來。你提問這個說明你不會編寫makefile,給出的是最基本用法。有興趣自己看,一天能學完。

G. Linux下使用gcc編譯及運行C程序的方法

gcc main.c max.c -o 程序名
或者先編譯成obj:
gcc main.c -c -o main.o
gcc max.c -c -o max.o
gcc max.o main.o -o 程序名

H. 如何用GCC在linux下編譯C語言程序

在Linux下面,如果要編譯一個C語言源程序,我們要使用GNU的gcc編譯器,假設我們有下面一個非常簡單的源程序(hello.c):


int main(int argc,char **argv)


{


printf("Hello Linux ");


}


要編譯這個程序,我們只要在命令行下執行:


gcc -o hello hello.c


gcc 編譯器就會為我們生成一個hello的可執行文件.執行./hello就可以看到程
序的輸出結果了

閱讀全文

與linux下gcc編譯圖形相關的資料

熱點內容
新加坡伺服器怎麼進 瀏覽:620
上海女程序員上班被偷 瀏覽:377
如何添加後台app 瀏覽:350
中國移動機頂盒時鍾伺服器地址 瀏覽:943
如何開發app流程 瀏覽:427
哈爾濱編程培訓課程 瀏覽:722
編程語言執行速度排行 瀏覽:174
啟辰原廠導航如何裝app 瀏覽:840
jsp項目優秀源碼 瀏覽:757
如何查看電腦web伺服器埠號 瀏覽:901
小區物業管理系統編程源碼 瀏覽:95
王城戰爭為什麼無法獲取伺服器列表 瀏覽:804
劍橋商務英語pdf 瀏覽:480
伺服器如何不休眠 瀏覽:800
微機原理及介面技術編程 瀏覽:204
解壓迷你游戲機手柄 瀏覽:553
androidrtsp框架 瀏覽:545
阿里女程序員內網徵婚 瀏覽:78
比例閥放大器接plc編程 瀏覽:852
java表示二進制 瀏覽:394