linux程序编译命令(linux程序编译)
linux下c編程,為什么有些程序用g++就可以編譯,而用gcc時(shí)必須加上-lstdc++呢?
因?yàn)間cc只能編譯C語(yǔ)言編寫(xiě)的程序,有的程序是用C++寫(xiě)的,所以編譯的時(shí)候就要使用G++,或者手動(dòng)加上標(biāo)準(zhǔn)C++庫(kù)
linux下對(duì)caffe和opencv這些庫(kù)的調(diào)用怎么編譯?
基本沒(méi)問(wèn)題,不過(guò)caffe很久都沒(méi)更新過(guò)了,需要改一下源碼來(lái)適配opencv4,Ubuntu18.04 opencv4.0,成功編譯了caffe,注意一下opencv API的變化就好r
如何在Windows下使用Linux系統(tǒng)來(lái)編譯和運(yùn)行程序?
我聽(tīng)都沒(méi)聽(tīng)說(shuō)過(guò)可以這樣做,首先,Windows不支持Linux的文件系統(tǒng),如EXT3,EXT4,XFS之類的,其次,雖然有MinGW這樣的編譯工具,但無(wú)法用這些工具構(gòu)建一個(gè)可以讀取和寫(xiě)入上述文件系統(tǒng)的chroot工具包環(huán)境,因?yàn)樵诰幾gLinux過(guò)程中,需要多次使用chroot
如何編譯arm linux的go?
Golang也就是Go語(yǔ)言,現(xiàn)在已經(jīng)發(fā)行到1.4.1版本了,語(yǔ)言特性優(yōu)越性和背后Google強(qiáng)大靠山什么的就不多說(shuō)了。Golang的官方提供了多個(gè)平臺(tái)上的二進(jìn)制安裝包,遺憾的是并非沒(méi)有發(fā)布ARM平臺(tái)的二進(jìn)制安裝包。ARM平臺(tái)沒(méi)辦法直接從官網(wǎng)下載二進(jìn)制安裝包來(lái)安裝,好在Golang是支持多平臺(tái)并且開(kāi)源的語(yǔ)言,因此可以通過(guò)直接在ARM平臺(tái)上編譯源代碼來(lái)安裝。整個(gè)過(guò)程主要包括編譯工具配置、獲取Golang源代碼、設(shè)置Golang編譯環(huán)境變量、編譯、配置Golang行環(huán)境變量等步驟。
注:本文選用樹(shù)莓派做測(cè)試,因?yàn)闃?shù)莓派是基于ARM平臺(tái)的。
1、編譯工具配置
據(jù)說(shuō)下個(gè)版本的golang編譯工具要使用golang自己來(lái)寫(xiě),但目前還是使用C編譯工具的。因此,首先要配置好C編譯工具:
1.1 在Ubuntu或Debian平臺(tái)上可以使用sudo apt-get install gcc libc6-dev命令安裝,樹(shù)莓派的RaspBian系統(tǒng)是基于Debian修改的,所以可以使用這種方法安裝。
1.2 在RedHat或CentOS 6平臺(tái)上可以使用sudo yum install gcc libc-devel命令安裝。
安裝完成后可以輸入 gcc --version命令驗(yàn)證是否成功安裝。
2、獲取golang源代碼
2.1 直接從官網(wǎng)下載源代碼壓縮包。
golang官網(wǎng)提供golang的源代碼壓縮包,可以直接下載,最新的1.4.1版本源代碼鏈接:https://storage.googleapis.com/golang/go1.4.1.src.tar.gz
2.2 使用git工具獲取。
golang使用git版本管理工具,也可以使用git獲取golang源代碼。推薦使用這個(gè)方法,因?yàn)橐院罂梢噪S時(shí)獲取最新的golang源代碼。
2.2.1 首先確認(rèn)ARM平臺(tái)上已經(jīng)安裝了git工具,可以使用git --version命令確認(rèn)。一般linux平臺(tái)都安裝了git,沒(méi)有的話可以自行安裝,不同平臺(tái)的安裝方法可以參考:http://git-scm.com/download/linux
2.2.2 克隆遠(yuǎn)程golang的git倉(cāng)庫(kù)到本地
在終端cd到你想要安裝golang的目錄,確保該目錄下沒(méi)有名為go的目錄。然后以下命令獲取代碼倉(cāng)庫(kù):
git clone https://go.googlesource.com/go
大陸地區(qū)可能會(huì)獲取失敗,在不翻墻的情況下我試了幾次都沒(méi)成功,原因大家都懂的。好在google已經(jīng)將golang也托管到github上面,所以也可以通過(guò)下面命令獲取:
git clone https://github.com/golang/go.git
視網(wǎng)絡(luò)情況,下載可能需要不少時(shí)間。我2M的帶寬花了將近兩個(gè)小時(shí)才下載完,雖然整個(gè)項(xiàng)目不過(guò)幾十兆= =
下載完成后,可以看到目錄下多了一個(gè)go目錄,里面即為golang的源代碼,在終端上執(zhí)行cd go命令進(jìn)入該目錄。
執(zhí)行下面命令檢出go1.4.1版本的源代碼,因?yàn)楝F(xiàn)在已經(jīng)有新的代碼提交上去了,最新的代碼可能不是最穩(wěn)定的:
git checkout go1.4.1
至此,最新1.4.1發(fā)行版的源代碼獲取完畢
3、設(shè)置golang的編譯環(huán)境變量
主要有GOROOT、GOOS、GOARCH、GOARM四個(gè)環(huán)境變量需要設(shè)置,先解釋四個(gè)環(huán)境變量的意義。
3.1 GOROOT
主要代表golang樹(shù)結(jié)構(gòu)目錄的路徑,也就是上面git檢出的go目錄。一般可以不用設(shè)置這個(gè)環(huán)境變量,因?yàn)榫幾g的時(shí)候默認(rèn)會(huì)以go目錄下src子目錄中的all.bash腳本運(yùn)行時(shí)的父目錄作為GOROOT的值。為了保險(xiǎn)起見(jiàn),可以直接設(shè)置為go目錄的路徑。
3.2 GOOS和GOARCH
分別代表編譯的目標(biāo)系統(tǒng)和平臺(tái),可選值如下:
GOOS GOARCH
darwin 386
darwin amd64
dragonfly 386
dragonfly amd64
freebsd 386
freebsd amd64
freebsd arm
linux 386
linux amd64
linux arm
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
plan9 386
plan9 amd64
solaris amd64
windows 386
windows amd64
需要注意的是這兩個(gè)值代表的是目標(biāo)系統(tǒng)和平臺(tái),而不是編譯源代碼的系統(tǒng)和平臺(tái)。樹(shù)莓派的RaspBian是linux系統(tǒng),所以這些GOOS設(shè)置為linux,GOARCH設(shè)置為arm。
3.3 GOARM
表示使用的浮點(diǎn)運(yùn)算協(xié)處理器版本號(hào),只對(duì)arm平臺(tái)有用,可選值有5,6,7。如果是在目標(biāo)平臺(tái)上編譯源代碼,這個(gè)值可以不設(shè)置,它會(huì)自動(dòng)判斷需要使用哪一個(gè)版本。
總結(jié)下來(lái),在樹(shù)莓派上設(shè)置golang的編譯環(huán)境變量,可編輯$HOME/.bashrc文件,在末尾添加下面內(nèi)容:
export GOROOT=你的go目錄路徑
export GOOS=linux
export GOARCH=arm
編輯完后保存,執(zhí)行source ~/.bashrc命令讓修改生效。
4、編譯源代碼
環(huán)境變量配置完成自后就可以開(kāi)始編譯源代碼。在go目錄下的src子目錄中,主要有all.bash和make.bash兩個(gè)腳本(另外還有兩個(gè)all.bat和make.bat腳本適用于window平臺(tái))。編譯實(shí)際上就是執(zhí)行其中一個(gè)腳本,兩者的區(qū)別在于all.bash在編譯完成后還會(huì)執(zhí)行一些測(cè)試套件。如果希望只編譯不測(cè)試,可以運(yùn)行make.bash腳本。使用cd命令進(jìn)入go下src目錄,執(zhí)行./all.bash或者./make.bash命令即可開(kāi)始編譯。由于硬件情況不同,編譯耗費(fèi)的時(shí)間不同。在我的B型樹(shù)莓派編譯過(guò)程花費(fèi)了將近半個(gè)小時(shí),編譯完成后執(zhí)行的測(cè)試套件又花費(fèi)了差不多一個(gè)小時(shí),總共花費(fèi)了一個(gè)半小時(shí)左右。
5、配置golang運(yùn)行環(huán)境變量
編譯完成后,go目錄下會(huì)生成bin目錄,里面就是go的運(yùn)行腳本。為了以后使用方法,可以將這個(gè)bin路徑添加到PATH環(huán)境變量中。同樣編輯~/.bashrc文件,因?yàn)榍懊嬖O(shè)置過(guò)GOROOT環(huán)境變量指向go目錄了,所以只需要在末尾加上
export PATH=$PATH:$GOROOT/bin
保存后同樣執(zhí)行source ~/.bashrc命令讓環(huán)境變量生效。
至此,golang源代碼編譯安裝成功。執(zhí)行g(shù)o version應(yīng)該就能看到當(dāng)前golang的版本信息,表示編譯安裝成功。
總結(jié)
以上是生活随笔為你收集整理的linux程序编译命令(linux程序编译)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: servlet异步_如何使用异步Serv
- 下一篇: 安卓云服务器怎么登陆(安卓云服务器)