安裝完linux以後記得系統更新,更新使用apt命令,以下(記得使用以前使用sudo -i 指令切換到root用戶模式)linux
apt-get update 更新系統軟件源,至關於查找更新c++
apt-get upgrade 更新系統所有待更新的軟件ubuntu
apt-get dist-upgrade 更新系統內核ssh
apt-get clean 清除系統中無用的包函數
apt-get autoclean 每次安裝軟件完成以後自動清除無用的包工具
apt-get install packagename 安裝指定名稱的軟件flex
apt-get remove package name 卸載指定名稱的軟件ui
apt-cache search packagename 從軟件元中查找指定軟件編碼
apt-get source packagename 獲取軟件的源代碼rest
apt-get -f install 修復安裝軟件
apt-get reinstall 從新安裝軟件
系統安裝完成以後記得安裝三個服務
1.vsftpd
apt-get install vsftpd
安裝完成以後打開配置文件,配置文件在
/etc/vsftpd.conf中,打開兩個註釋(最新版的默認打開了)
local_enable=YES
write_enable=YES
對服務進行控制使用service vsftpd restart...
第一個容許本地用戶登陸 第二個容許上傳
2.安裝ssh服務
apt-get install openssh-server
安裝完成以後配置文件在/etc/ssh/sshd-config,不須要修改
對服務狀態進行修改
service ssh restart
3.安裝nfs服務
apt-get nfs-kernel-server portmap
配置文件
/etc/exports,該文件決定那些目錄共享,能夠添加本身的目錄,以下
/work/nfs_root *(rw,sync,no_root_squash,no_subtree_check)
最後一個若是不添加會有警告
修改服務狀態
service nfs_kernel_server restart
而後在主機中添加基本工具鏈,使用
apt-get install build-essential
添加語法詞法分析器
apt-get install bison flex
安裝C函數庫手冊
apt-get install manpage-dev
查看安裝好的gcc與gdb的版本
gcc --version
gdb --version
安裝額外的加強型軟件
apt-get install autoconf automake //生成工程makefile的工具
apt-get install binutil-doc cpp-doc gcc-doc glibc-doc stl-manual //其餘程序的用戶手冊
查看手冊使用man 函數名的方法,退出按q
解壓獲得gcc-3.4.5-glibc-2.3.6,將解壓後的文件的bin目錄記錄下來,最好不要直接添加到環境變量中,用的時候添加,這樣可讓系統中有多個不一樣版本的交叉工具鏈
系統環境變量的路徑爲
/etc/environment 在該文件中能夠直接添加環境變量
第二種方法是在/etc/profile文件中添加
export PATH=/home/work/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH,保存以後調用source /etc/profile便可,等號兩邊不能有空格
第三種方法是打開終端,手動輸入以上命令,僅僅對這一次有效,退出命令窗口的時候自動失效
編譯linux的時候make menuconfig須要使用ncurses工具包,ubuntu添加該工具的方法是
apt-get install libncurses 通常已經自帶了
apt-get install linncurses-dev 安裝
一個c,c++文件通過四部才能變成可執行文件
1.預處理
arm-linux-cpp工具,將宏定義和條件編譯展開,生成的是後綴i結尾的文件
2.編譯
cc1(不是arm-linux-cc1),將高級語言編譯成彙編代碼,生成.s結尾的文件
3.彙編
arm-linux-as 將彙編碼編譯成ELF文件,生成.o文件
4.連接
arm-linux-ld 將多個elf文件連接,生成可執行的文件,生成最終.o文件或者.out文件
可是使用
arm-linux-gcc可以一次性完成上述所有步驟
arm-linux-gcc -o hello hello.c
生成目標文件hello.o,-o參數指定生成目標文件文件名
arm-linux-gcc -v -o hello hello.c
-v能夠在編譯中顯示編譯的細節
能夠經過各類選項來控制arm-linux-gcc的動做
-c 預處理 編譯 彙編 可是不作連接,默認生成文件名.o的文件,要想指定文件名,記得用-o 文件名,並放在-c前面
-S 編譯以後當即中止,不進行彙編,生成.s文件,要想指定文件名,記得用-o 文件名,並放在-S前面,能夠用於查看彙編代碼
-E 與處理以後中止,生成.i文件,忽略任何不須要預處理的源文件
-v 顯示GCC工具自身的版本號以及編譯時候的詳細過程
-o 指定目標文件名,不然可執行文件默認a.out,其餘默認原文件名.o
舉例說明
gcc -c -o main.o main.c
gcc -c -o sub.o sub.c
gcc -o test sub.o main.o
main.c中調用了sub.c的內容,可是不鏈接是能經過的當.o文件都生成成功以後就能夠一次性生成目標文件了
直接生成某個文件的彙編文件
gcc -S -o name.s name.c
注意S必須是大寫哦