go語言編譯exe,go語言編譯成exe

初學(xué)編程應(yīng)該學(xué)習(xí)哪種編程語言?

編程應(yīng)該是很多非計算機專業(yè)入門的必學(xué)科目,編程就像我們小時候的牙牙學(xué)語,只有學(xué)會快樂說話,才能去學(xué)習(xí)語文等科目。而語文就像計算機專業(yè)的人工智能,還沒有學(xué)會說話,就想學(xué)語文是不可能的,同樣的還沒有掌握計算機語言,你還沒有弄懂電腦給你的對話,怎么能學(xué)會人工智能呢?

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站設(shè)計與策劃設(shè)計,崆峒網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:崆峒等地區(qū)。崆峒做網(wǎng)站價格咨詢:18980820575

一、編程語言有很多,我們該如何選擇一門先學(xué)習(xí)呢?

綜合出爐的編程語言排行榜,我們可以具體分析一下:

通過榜單我們可以看出,編程霸主依然是java、C語言、C++、python等。

1、為什么java依舊能持續(xù)占據(jù)榜單榜首?

一方面是因為Java非常強大的適用性,而且入門學(xué)習(xí)Java也能很快上手,而在代碼邏輯方面,Java也做到了無懈可擊,清晰不混亂,而且因為自身機制原因,Java還很適合在移動端領(lǐng)域深造,安卓和ijos都是經(jīng)過Java制作的,在領(lǐng)域方面Java是涉及的非常廣泛。

2、C/C++語言應(yīng)該是出現(xiàn)最早,但為什么排在榜單第二呢?

C 是比較老的編程語言之一,由于它的代碼運行速度快而且簡單,它到現(xiàn)在仍然一直被使用。它的學(xué)習(xí)難度比較大,但是,一旦你掌握了它,你就可以做任何語言能做的事情。你可能不會用它去做高級的網(wǎng)站或者軟件,但是,C 是嵌入式設(shè)備的首選編程語言。隨著物聯(lián)網(wǎng)的普及,C 將被再次廣泛的使用,對于 C++,它被廣泛用于一些大型軟件。

3、python編程語言上升速度最快,為什么越來越受程序員的青睞?

原因有幾個:1、主要歸因于 python對大數(shù)據(jù)的處理能力,性能表現(xiàn)優(yōu)良,語法相對簡單,學(xué)習(xí)成本較低。2、人工智能及云計算的發(fā)展,國家推廣人工智能教育, python被一些學(xué)校作為教學(xué)語言。3、借人工智能的聲勢,宣傳 python的各種優(yōu)勢,所以,迅速在大眾中傳插。就如區(qū)塊鏈技術(shù)。

二、針對以上的數(shù)據(jù)分析,對于非計算機專業(yè)入門計算機行業(yè)來說,選擇哪種編程語言,可以從以下幾個方面入手:

考慮一下自己的興趣點和以后的就業(yè)方向。比如說:以后想從事人工智能方向,可以選擇學(xué)習(xí)python;如果以后想進入大數(shù)據(jù)領(lǐng)域,可以學(xué)習(xí)java或者python;如果想進入物聯(lián)網(wǎng)領(lǐng)域,可以選擇學(xué)習(xí)C語言……

怎么吧go程序打包成可運行的EXE文件

你在編譯器里面Build一下,然后去\bin\Debug目錄下找.exeexe就是可執(zhí)行文件了。運行的時候可能需要用到Debug目錄下的其他文件(如配置文件、DLL等),所以需要把Debug下的所有文件都放到一起。

linux環(huán)境下golang怎么編譯exe

Linux 是不需要安裝的,直接用 chmod -x 文件名 將它的屬性修改為可運行,然后就可以通過命令行執(zhí)行它了,后綴名你改為 .sh ,這是 shell 默認支持的文件類型

Go語言的跨平臺能力到底有多強?看完你就知道了

對比于其他語言的程序,Go語言的跨平臺能力是真的強,拿.Net和JAVA來說吧,.Net在.Net core出現(xiàn)之前是不能跨平臺的,只能在windows上編譯運行,即使是.net core出現(xiàn)以后,跨平臺的程序也是相當(dāng)?shù)穆闊?。而java雖然一直都可以跨平臺,但是運行JAVA程序的機器上也必須要有JAVA程序運行環(huán)境JRE。而相對于Go程序,跨平臺就簡單的多了,只需要在編譯指定目標程序運行的架構(gòu)和環(huán)境即可編譯出指定操作系統(tǒng)和架構(gòu)的程序。

以上是指定了go的環(huán)境變量后執(zhí)行的go build命令進行目標程序的構(gòu)建,這種方式會一直生效的,如果不讓他一直生效,可以在構(gòu)建的時候臨時指定環(huán)境變量,下面以window的環(huán)境為例,來介紹臨時指定環(huán)境變量的方式構(gòu)建可以在Linux環(huán)境下運行的可執(zhí)行程序:

可以根據(jù)不同的架構(gòu)和操作系統(tǒng)將其編寫為不同的.bat的可執(zhí)行文件放置在程序的根目錄,Linux的和MAC的也一樣編寫成腳本文件放置在程序的根目錄,這樣在構(gòu)建的時候就不用再敲命令了,直接運行腳本就可以了。

Java程序編譯打包后為war包或者是java包,必須執(zhí)行java -jar 命令或者將其放置到tomcat的指定目錄下,運行tomcat程序。而Go語言編寫的程序最終為可執(zhí)行的文件(window下編譯出的是.exe的可執(zhí)行文件),只需要將其賦予可執(zhí)行的權(quán)限就可以直接運行了。

構(gòu)建JAVA程序的鏡像需要指定java的基礎(chǔ)鏡像,否則就需要在鏡像中安裝java的運行環(huán)境了,下面展示的是構(gòu)建的一個JAVA程序的鏡像,構(gòu)建出來鏡像的體積相對比較大

而Go程序制作出的鏡像就不需要安裝任何的依賴環(huán)境,因為他在打包的時候就已經(jīng)將依賴的包一塊打包到一起了

拿著這個鏡像就可以到處運行了。

通過對比我們可以發(fā)現(xiàn),如果沒有之前的技術(shù)和業(yè)務(wù)的積累,重新開發(fā)一個新的項目,使用go去開發(fā)無疑是最容易上手的,所以現(xiàn)在很多公司都使用go進行開發(fā),也逐漸將其他語言的項目逐步的用go語言進行改造。其實用什么語言不重要,合適的才重要,開發(fā)項目在選擇語言的時候也會綜合多方面來考慮選擇合適的語言和架構(gòu),畢竟很多公司都不是搞研究的,都需要項目來賺錢,所以開發(fā)的速度、客戶的滿意度、項目交付的時間才是驅(qū)動公司技術(shù)的主要因素。

我們個人也應(yīng)該不斷完善自己的技術(shù)棧,不應(yīng)該太依靠某種語言,最重要的還是自己的架構(gòu)思想和底層架構(gòu)知識,只有掌握了這些才能夠不被 社會 和公司“優(yōu)化”。

有沒有一種編程語言,能使編出來的exe程序不需要運行庫就能運行?

確切的說,沒有。

就連匯編語言都需要調(diào)用庫函數(shù)。

因為編譯好的程序要同操作系統(tǒng)打交道,必然要用到庫。

c語言有c語言的庫,c++有c++的庫。

庫函數(shù)為你提供必要的編程接口,也就是API之類。

你想表達的也許是靜態(tài)鏈接到庫,那樣,表面看來是可以脫離許多庫的模塊來運行的;

但本質(zhì)上是把某些庫整個編譯到你的程序中而已,程序也會因此膨大許多。

如何配置go語言開發(fā)環(huán)境

1、下載go的zip文件。并且一定要把文件解壓到c:\go目錄下。

2、配置windows的高級環(huán)境變量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path變量里面把c:\go\bin加入。以便可以在命令行直接運行g(shù)o命令。

舉例:我的機器:

GOPATH= c:\go;c:\go\src;F:\workspace\goSample01;

GOBIN=c:\go\bin;F:\workspace\goSample01\bin;

其中,c:\go是go的安裝路徑;

F:\workspace\goSample01是我寫的go語言項目的工程目錄;

F:\workspace\goSample01\bin是go語言項目的工程目錄下的可執(zhí)行文件路徑;

3、在完成環(huán)境變量配置后,打開一個命令行窗口,直接輸入go,然后回車,看看是否出現(xiàn)go的幫助信息。如果出現(xiàn),那么go的基本環(huán)境就OK了。

注意:這個基本環(huán)境不包含開發(fā)工具,也不能直接編譯帶C代碼的go程序。

4、(可選)為了支持Import遠程包,最好裝個gomingw。下載地址:。如果下的是壓縮包,請把它解壓到C盤。例如,C:\gowin-env。里面有個Console.bat是以后使用go get的環(huán)境。舉例:有個文件a.go,里面import(

"fmt"

"github.com/astaxie/beedb"

_ "github.com/ziutek/mymysql/godrv"

為了編譯該a.go文件,需要啟動Console.bat,然后在該命令行窗口,進入c:\go\src目錄下,執(zhí)行g(shù)o getgithub.com/astaxie/beedb

Go get github.com/ziutek/mymysql/godrv .

Go會自動下載該遠程包并編譯和安裝這些包。

配置goclipse(可選)

(如果不喜歡eclipse開發(fā)工具,請?zhí)^這個配置。)

1、下載并安裝goclipse插件。Goclipse是go語言for eclipse的插件,下載地址:

2、啟動eclipse并創(chuàng)建go項目。然后寫個最簡單的helloworld.go文件,并運行。代碼如下:

packagemainimport"fmt"func main(){ fmt.Printf("hello, world")}

配置gocode(可選)

如果不需要go語法輔助和eclipse里面的(按ALT+/)彈出go語言自動輔助功能,請?zhí)^這個配置。

1、下載gocode的zip文件,解壓后放在go的bin目錄下。

2、下載并安裝Git軟件。并且在path里面配置git的執(zhí)行路徑。例如c:\git\bin

3、在命令行執(zhí)行:go build .\gocode。如果一切正常,那么將會編譯生成一個gocode.exe文件在go的bin目錄下。如果編譯失敗,那么就轉(zhuǎn)第4步。

4、如果第3步直接編譯gocode源文件成功,那就直接到第5步。否則,就需要通過git下載gocode源文件,然后再編譯。在命令行執(zhí)行:go get -u github.com/nsf/gocode 。就會生成gocode.exe文件。

5、在goclipse插件里面指定gocode的路徑。就可以在elcipse里面調(diào)用gocode來幫助寫編碼了。

從開發(fā)工具這塊看,go語言還不夠成熟,開發(fā)工具都還不完善,有待改進。

下載go-tour教程源代碼(可選)

Google有個在線運行g(shù)o語言的教程(),很不錯。支持在web上直接運行大部分的go程序,想了解這個教程的源代碼的朋友可以通過以下方式獲取。如果沒興趣,可以跳過這個步驟。

1、下載安裝Mercurial軟件。

2、在命令行下輸入:

hg clone

這個URL是我從google的go-tour源代碼的一個clone。作為測試用的。如果把http改成https協(xié)議,下載就會失敗。搞不懂。

編譯帶調(diào)用C代碼的go文件(可選)

1、為了在windows下編譯帶C代碼的go程序,你首先需要下載并安裝MinGW或者Cygwin。

2、首選安裝MinGW。在安裝MinGW之后,記得要把MinGW安裝目錄\bin路徑設(shè)置在path環(huán)境變量里面,以便能在dos窗口下直接調(diào)用gcc。

3、下載一個gowin-env。下載地址:gowin-env。下載后解壓到某個目錄下,例如:C:\gowin-env. 然后,編輯go-env.bat。配置相關(guān)的go參數(shù)。例如,我的配置是:

set GOARCH=386

set GOOS=windows

set GOROOT=c:\go

set GOBIN=%GOROOT%\bin

set GOPATH=%GOROOT%;F:\workspace\goSample01;

設(shè)置好go-env.bat后,就可以點擊Console.bat來啟動編譯和運行窗口。

4、編寫一個帶C代碼的go程序。例如,testc.go

5、編譯

例如:

go build -compiler gccgo test_c.go

運行調(diào)用C代碼的go文件(可選)

1、testc.go.

創(chuàng)建rand目錄,然后在rand里面創(chuàng)建testc.go. 代碼如下:

package rand

/*

//

#include stdio.h

*/

import "C"

func PrintHello() {

C.puts(C.CString("Hello, world\n"))

}

2、a.go

在rand下創(chuàng)建a.go.代碼如下:

package rand

import "fmt"

func SayHello(name string){

fmt.Println(name)

}

3、test_import.go

在rand的上一級創(chuàng)建test_import.go。代碼如下:

package main

import "./rand"

func main(){

rand.SayHello("tom")

rand.PrintHello()

}

4、運行test_import.go

go run test_import.go

在測試其它幾個C代碼的時候,發(fā)現(xiàn)windows版本的cgo還有些編譯問題,同樣的代碼轉(zhuǎn)移到蘋果的XCODE下就沒有問題。后來終于發(fā)現(xiàn)原因了,原來有些例子是unix平臺下的,而在windows平臺下,方法名和參數(shù)需要做調(diào)整。

例如:下面代碼在windows下編譯報一堆錯誤。

package rand

/*

#include stdlib.h

*/

import "C"

func Random() int {

return int(C.random())

}

func Seed(i int) {

C.srandom(C.uint(i))

}

這里需要把return int(C.random()) 修改為“return int(C.rand())”

C.srandom(C.uint(i))修改為“C.srand(C.uint(i))”編譯就OK了。

標題名稱:go語言編譯exe,go語言編譯成exe
網(wǎng)址分享:http://muchs.cn/article8/hcihip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、品牌網(wǎng)站制作、微信公眾號網(wǎng)站內(nèi)鏈、手機網(wǎng)站建設(shè)軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司