學習linux下的c/c++編程
1,先有linux環境
搭minGW和cygwin都有點麻煩,最最簡單的辦法還是裝個真正的linux,用虛擬機器也好,在網路上的另一台機器也好。這樣不僅快,而且你有了真正的環境。
2.會C/C++語言(估計你會的)
3.入門階段熟悉gcc命令列,最基本的參數,如,-g,-W,-O,-o,-c 建議看man gcc(很大找想要的)
4.編譯第一個helloworld程式: 基本命令 gcc helloworld.c -o helloworld
前面四個階段的時間估計只要1-2天就可以了
5.提高階段,你需要開始瞭解,並熟悉ld,gdb,編寫基本的Makefile,瞭解make程式,編程方面學習*nix系統IPC,訊號行為(該階段非常長估計要至少幾個月-一年,看個人悟性和所花時間了)
到目前為止,你已經是linux軟體工程師了,下面的進階是可選的:-)
6. 進階階段:編程方面學習Linux核心源碼結構,驅動開發,進而能精簡核心,瞭解各種library的作用和用法。編譯器方面:瞭解系統各個主要庫如 libstdc++,glibc2(libc.so),ld-linux.so.2(動態連結器),瞭解gcc其它各種option.ld各種, option.編寫複雜的Makefile,熟悉並能使用automake和autoconf(這個階段,你最好自己至少編譯和安裝一次glibc, gcc,甚至產生cross-reference編譯系統)(該階段基本上沒有止境,編譯系統和核心熟悉之後,你基本上已經是專家了)
備忘:
編輯器vi,emacs
編譯器gcc
整合式開發環境kdevelop等
函數庫gtk+,QT等
inux發版本都差不多的,哪個版本都一樣
linux發版本都差不多,核心都一樣,都是用gcc/g++做編譯器,gdb調試
介面編程,可以用gtk、qt等,另外wxWidgets也可以
應用編程,只要用c/c++庫,檔案、記憶體、網路和windows下沒有區別,進程和線程,有些不同,但原理類似,很容易入手,資料庫的話,輕量級的sqlite,複雜的有mysql等,這些都是跨平台的,
linux下驅動編程,相對於windows驅動來說,還是比較簡單的,沒有什麼複雜的架構.