當前位置:首頁 » 編程軟體 » go語言編譯的exe破譯

go語言編譯的exe破譯

發布時間: 2024-09-18 02:25:10

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

對比於其他語言的程序,Go語言的跨平台能力是真的強,拿.Net和java來說吧,.Net在.Net core出現之前是不能跨平台的,只能在windows上編譯運行,即使是.net core出現以後,跨平台的程序也是相當的麻煩。而java雖然一直都可以跨平台,但是運行JAVA程序的機器上也必須要有JAVA程序運行環境JRE。而相對於Go程序,跨平台就簡單的多了,只需要在編譯指定目標程序運行的架構和環境即可編譯出指定操作系統和架構的程序。

以上是指定了go的環境變數後執行的go build命令進行目標程序的構建,這種方式會一直生效的,如果不讓他一直生效,可以在構建的時候臨時指定環境變數,下面以window的環境為例,來介紹臨時指定環境變數的方式構建可以在Linux環境下運行的可執行程序:

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

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

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

而Go程序製作出的鏡像就不需要安裝任何的依賴環境,因為他在打包的時候就已經將依賴的包一塊打包到一起了

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

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

我們個人也應該不斷完善自己的技術棧,不應該太依靠某種語言,最重要的還是自己的架構思想和底層架構知識,只有掌握了這些才能夠不被 社會 和公司「優化」。

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

確切的說,沒有。
就連匯編語言都需要調用庫函數。
因為編譯好的程序要同操作系統打交道,必然要用到庫。
c語言有c語言的庫,c++有c++的庫。
庫函數為你提供必要的編程介面,也就是API之類。
你想表達的也許是靜態鏈接到庫,那樣,表面看來是可以脫離許多庫的模塊來運行的;
但本質上是把某些庫整個編譯到你的程序中而已,程序也會因此膨大許多。

熱點內容
動態規劃01背包演算法 發布:2024-11-05 22:17:40 瀏覽:849
nasm編譯器如何安裝 發布:2024-11-05 22:01:13 瀏覽:180
登錄密碼在微信的哪裡 發布:2024-11-05 22:00:29 瀏覽:738
c防止反編譯工具 發布:2024-11-05 21:56:14 瀏覽:247
安卓虛擬機怎麼用 發布:2024-11-05 21:52:48 瀏覽:343
php時間搜索 發布:2024-11-05 20:58:36 瀏覽:478
燕山大學編譯原理期末考試題 發布:2024-11-05 20:13:54 瀏覽:527
華為電腦出現臨時伺服器 發布:2024-11-05 20:05:08 瀏覽:408
斗戰神免費挖礦腳本 發布:2024-11-05 19:53:25 瀏覽:665
網吧伺服器分別是什麼 發布:2024-11-05 19:45:32 瀏覽:392