GCC園咎匂酒苧縮殻?Linux和C囂冱蝕窟桟廠議喜秀?
Linux 麼勣哘喘噐光嶽捲暦匂?箭泌利嫋捲暦匂、方象垂捲暦匂、DNS捲暦匂、喨周捲暦匂、揃喇匂、減墮譲財鹿蛤吉??遇音頁厘断械需議倖繁窮辻。Linux 頁捲暦匂荷恬狼由議蒸斤惟麼?媼象阻 80% 參貧議芸駆?壓隆栖議捲暦匂糟囃?Linux 頁寄米侭迫。
宸凪嶄?嗽參 CentOS 才 Ubuntu 葎麼?CentOS 媼嗤儿宜來議單米。捲暦匂荷恬狼由 80% 參貧議偏魁芸駆瓜 Linux 媼象?遇 Linux 80% 參貧議芸駆嗽瓜 CentOS 媼象。云縮殻參 CentOS 葎箭栖讐峰泌採園咎C殻會。
捲暦匂貧議 Linux 頁音芦廾夕侘順中議?峪嬬壓陣崙岬庁塀和聞喘?參勝楚准福捲暦匂彿坿。遇厘断壓僥楼狛殻嶄聞喘議 Linux 頁揮夕侘順中議?參諾怎兜僥宀議俶箔?週詰僥楼撹云。壓 Linux 和厘断挽隼辛參聞喘揮順中議、謬肱塀議 IDE?箭泌 CodeLite、CLion?辺継?、Code::Blocks、Netbeans、Eclipse CDT 吉。裏罷議 Visual Studio 匆屶隔 Linux 阻?壓 Windows 和喘降阻 Visual Studio 議喘薩匆辛參坐涙嬾悪仇濡卞欺 Linux 峠岬。
徽頁恬葎兜僥宀?厘秀咏寄社壓凋綜佩庁塀和園咎C囂冱殻會?宸劔嬬校阻盾伏撹匯倖辛峇佩殻會議峋聾化帶?參式園咎凋綜議光嶽譜崔僉??葎參朔議 Linux C/C++ 蝕窟嬉挫釈糞議児粥。
Gedit 園辞匂
壓 Linux 和?載謹殻會埀脅容括聞喘 Vim、Emacs 吉凋綜佩庁塀議園辞匂?万断孔嬬膿寄?影鯉校互?音砿嗤短嗤彑中桟廠脅嬬聞喘?頁 Linux C/C++ 殻會埀駅姥議舞匂。徽頁 Vim 才 Emacs 旺音否叟貧返?聞喘宀俶勣芝吮載謹凋綜才酔楯囚?母膳嘉嬬伏派?侭參俶勣匯粁扮寂議僥楼才癖哘?宸氏奐紗兜僥宀議僥楼撹云?侭參宸戦音容呪寄社聞喘。CentOS 和嗤匯錘徭揮議夕侘順中園辞匂?出恂 Gedit。Gedit 頁匯錘酒汽糞喘議猟云園辞匂?順中單囘?屶隔囂隈互疏?曳 Vim 否叟貧返?万才 Windows 和議園辞匂短嗤焚担曾劔。云縮殻繍 Gedit 恬葎C囂冱旗鷹議園辞匂。
泌惚低聞喘議頁凪万議 Linux 窟佩井?辛嬬短嗤潮範芦廾 Gedit?宸倖扮昨祥誼徭失芦廾?醤悶化帶葎?遍枠?壓厘断徭失議喘薩朕村和仟秀匯倖兆葎$ sudo apt-add-repository ppa:ubuntu-on-rails/ppa #耶紗ubuntu議罷周坿
$ sudo apt-get update #厚仟罷周双燕
$ sudo apt-get install gedit-gmate #芦廾
demo議猟周斜。宸倖猟周斜廨壇喘栖贋慧嚥C囂冱屢購議猟周?箭泌坿猟周、朕炎猟周、辛峇佩猟周吉?万廨工厘断僥楼聞喘。
喘薩朕村嗤扮昨匆出 home 猟周斜賜宀麼猟周斜?万議揃抄頁/home/username?凪嶄 username 祥頁厘断鞠村 Linux 扮聞喘議喘薩兆。Linux 氏壓 home 朕村和葎耽匯倖鞠村議喘薩幹秀匯倖猟周斜?廨壇喘栖贋慧乎喘薩聞喘欺議塘崔猟周、猟云猟亀、夕頭、辛峇佩殻會吉?參才凪麿喘薩曝蛍蝕栖。
俊和栖俶勣幹秀匯倖腎易議 main.c 坿猟周。main.c 凪糞祥頁匯倖歓猟云猟周?旺短嗤販採蒙歩鯉塀?徽頁 Linux 音崧 Windows?辛參壓嘔囚暇汽嶄仟秀猟云猟亀?Linux 駅倬聞喘凋綜栖幹秀?泌和侭幣?
$ cd demo #序秘 demo 朕村?宸頁坿猟周侭壓議朕村
$ touch main.c #聞喘 touch 凋綜幹秀匯倖兆葎 main.c 議腎猟周
$ gedit main.c #聞喘 gedit 凋綜園辞 main.c
壓 Gedit 嶄補秘和中議C囂冱旗鷹?
#include <stdio.h>
int main()
{
puts("C囂冱嶄猟利");
return 0;
}
補秘頼撹朔議丼惚泌和夕侭幣?
Ctrl+S隠贋猟周?祥頼撹阻坿旗鷹議園辞垢恬。緩扮俶勣購液 Gedit 議完笥?$ gedit main.c凋綜嘉麻峇佩潤崩?嘉嬬壓陣崙岬写偬補秘凪万凋綜。和夕處幣阻壓陣崙岬貧議糞縞丼惚? 廣吭?壓 CentOS 和?聞喘
touch凋綜幹秀頼 main.c 朔?序秘 demo 朕村?壓嘔囚暇汽嶄匆辛參聞喘 Gedit 嬉蝕 main.c?泌和夕侭幣?
GCC 園咎匂
Linux 和聞喘恷鴻刑議 C/C++ 園咎匂頁 GCC?寄謹方議 Linux 窟佩井云脅潮範芦廾?音砿頁蝕窟繁埀珊頁兜僥宀?匯違脅繍 GCC 恬葎 Linux 和遍僉議園咎垢醤。云縮殻匆坐音嗅團仇聞喘 GCC 栖園咎C囂冱殻會。GCC 叙叙頁匯倖園咎匂?短嗤順中?駅倬壓凋綜佩庁塀和聞喘。宥狛
gcc凋綜祥辛參繍坿猟周園咎撹辛峇佩猟周。
1) 伏撹辛峇佩殻會
恷酒汽議伏撹辛峇佩猟周議亟隈葎?
$ cd demo #序秘坿猟周侭壓議朕村
$ gcc main.c #壓 gcc 凋綜朔中諸効坿猟周兆
廣吭?音崧 Windows?Linux 音參猟周朔弸栖曝蛍辛峇佩猟周?Linux 和議辛峇佩猟周朔弸尖胎貧辛參頁販吭議?宸戦議泌惚音?聞喘潮範議猟周兆?椎担辛參宥狛.out峪頁喘栖燕苧万頁 GCC 議補竃猟周。音砿坿猟周議兆忖頁焚担?GCC 伏撹議辛峇佩猟周議潮範兆忖兵嶮頁a.out。
-o僉?栖徭協吶猟周兆?箭泌?
$ gcc main.c -o main.out
宸劔伏撹議辛峇佩殻會議兆忖祥頁main.out。咀葎 Linux 和辛峇佩猟周議朔弸叙叙頁匯嶽侘塀貧議?侭參辛峇佩猟周匆辛參音揮朔弸?箭泌?
$ gcc main.c -o main
宸劔伏撹議辛峇佩殻會議兆忖祥頁main。宥狛
-o僉?匆辛參繍辛峇佩猟周補竃欺凪麿朕村?旺音匯協掲誼壓輝念朕村和?箭泌?
$ gcc main.c -o ./out/main.out
賜宀$ gcc main.c -o out/main.out
燕幣繍辛峇佩猟周補竃欺輝念朕村和議out朕村?旺凋兆葎main.out。./燕幣輝念朕村?泌惚音亟?潮範匆頁輝念朕村。
廣吭?out 朕村駅倬贋壓?泌惚音贋壓?gcc 凋綜音氏徭強幹秀?遇頁砺竃匯倖危列。
2) 塰佩辛峇佩殻會
貧中厘断伏撹阻辛峇佩殻會?椎担乎泌採塰佩万椿?載酒汽?壓陣崙岬嶄補秘殻會議兆忖祥辛參?泌和侭幣?$ ./a.out
./燕幣輝念朕村?屁訳凋綜議吭房頁塰佩輝念朕村和議 a.out 殻會。泌惚音亟./?Linux 氏欺狼由揃抄和臥孀 a.out?遇狼由揃抄和?堡参惨耡旁盡檉茂鬘k窅垰疽撲佇О棔?
侭僚狼由揃抄?祥頁桟廠延楚峺協議揃抄?厘断辛參宥狛俐個桟廠延楚耶紗徭失議揃抄?賜宀評茅蝶倖揃抄。載謹扮昨?匯訳 Linux 凋綜斤哘匯倖辛峇佩殻會?泌惚峇佩凋綜扮短嗤峺苧揃抄?椎担祥氏欺狼由揃抄和臥孀斤哘議殻會。補秘頼貧中議凋綜?梓和指概囚?殻會祥蝕兵峇佩阻?万氏繍補竃潤惚岷俊?塋菖攷慟凸29錬h舅陀秫升?
$ cd demo
$ gcc main.c
$ ./a.out
C囂冱嶄猟利
$
$ ./out/main.out
賜宀$ out/main.out
宸倖扮昨紗音紗./脅匯劔?Linux 嬬校紛艶竃out頁匯倖朕村?遇音頁匯倖凋綜?万潮範氏壓輝念揃抄和臥孀乎朕村?遇音頁肇狼由揃抄和臥孀?侭參音紗./匆音氏竃危。廣吭?泌惚殻會短嗤峇佩幡尫?辛參聞喘
sudo凋綜栖奐紗幡尫?箭泌?
$ sudo chmod 777 a.out
頼屁議處幣
葎阻斑響宀嗤匯倖厚紗畠中議範紛?厘断音形繍貧中曾何蛍議坪否銭俊軟栖?頼屁議處幣匯和貫園辞坿猟周欺塰佩辛峇佩殻會議畠狛殻?
$ cd demo #序秘坿猟周侭壓朕村
$ touch main.c #仟秀腎易議坿猟周
$ gedit main.c #園辞坿猟周
$ gcc main.c #伏撹辛峇佩殻會
$ ./a.out #塰佩辛峇佩殻會
C囂冱嶄猟利
$ #写偬吉棋補秘凪万凋綜
蛍化帶園咎
貧中讐盾議頁宥狛gcc凋綜匯肝來頼撹園咎才全俊議屁倖狛殻?宸劔恷圭宴?寄社壓僥楼C囂冱議狛殻嶄匯違脅宸担恂。糞縞貧?gcc凋綜匆辛參繍園咎才全俊蛍蝕?耽肝峪頼撹匯?販暦。
1) 園咎?Compile?
繍坿猟周園咎撹朕炎猟周俶勣聞喘-c僉??箭泌?
gcc -c main.c
祥繍 main.c 園咎葎 main.o。嬉蝕 demo 朕村?祥氏心欺 main.o? 斤噐裏罷園咎匂?坪廼壓 Visual C++ 賜宀 Visual Studio 嶄??朕炎猟周議朔弸葎.obj?斤噐 GCC 園咎匂?朕炎猟周議朔弸葎.o。匯倖坿猟周氏伏撹匯倖朕炎猟周?謹倖坿猟周氏伏撹謹倖朕炎猟周?坿猟周方朕才朕炎猟周方朕頁匯劔議。宥械秤趨和?潮範議朕炎猟周兆忖才坿猟周兆忖頁匯劔議。
泌惚錬李徭協吶朕炎猟周議兆忖?椎担辛參聞喘
-o僉??箭泌?
gcc -c main.c -o a.o
宸劔伏撹議朕炎猟周議兆忖祥頁 a.o。2) 全俊?Link?
壓gcc凋綜朔中諸効朕炎猟周議兆忖?祥辛參繍朕炎猟周全俊撹葎辛峇佩猟周?箭泌?
gcc main.o
祥繍 main.o 全俊葎 a.out。嬉蝕 demo 朕村?祥氏心欺 a.out。壓
gcc凋綜朔中諸効坿猟周兆忖賜宀朕炎猟周兆忖脅頁辛參議?gcc凋綜嬬校徭強紛艶欺久頁坿猟周珊頁朕炎猟周?泌惚頁坿猟周?椎担勣将狛園咎才全俊曾倖化帶嘉嬬伏撹辛峇佩猟周?泌惚頁朕炎猟周?峪俶勣全俊祥辛參阻。聞喘
-o僉?挽隼嬬校徭協吶辛峇佩猟周議兆忖?箭泌?
gcc main.o -o main.out
宸劔伏撹議辛峇佩猟周議兆忖祥頁 main.out。和中頁匯倖頼屁議處幣?
$ cd demo
$ gcc -c main.c
$ gcc main.o
$ ./a.out
C囂冱嶄猟利
$