最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

聊聊Go語言編譯github上的項目遇到的坑

 更新時間:2021年04月30日 10:30:40   作者:老油條666  
這篇文章主要介紹了解決Go語言編譯github上的項目遇到的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近轉(zhuǎn)行Go語言服務(wù)端,老大寫了個很復(fù)雜的框架,并且沒有文檔。在讀取源代碼的時候,很是痛苦,記憶力不咋地,記不住東西,于是乎想出了通過源代碼創(chuàng)建UML類圖的辦法。C++和JAVA都有類似的工具軟件,但是Go語言只有通過github上的一個開源項目來搞。

中間遇到了很多坑,于是乎記下這篇文章。

首先根據(jù)網(wǎng)上的文章,搞這個項目的第一步是go get **********(項目路徑),但是第一步就沒邁出去,各種報錯

下面就是錯誤列表:

package git.oschina.net/jscode/go-package-plantuml: unrecognized import path "git.oschina.net/jscode/go-package-plantuml" (parse https://git.oschina.net/jscode/go-package-plantuml?go-get=1: no go-import meta tags (meta tag gitee.com/jscode/go-package-plantuml did not match import path git.oschina.net/jscode/
go-package-plantuml))
 
package gitee.com/jscode/go-package-plantuml.git: cannot download, git://gitee.com/jscode/go-package-plantuml uses insecure protocol
 
package https:/gitee.com/jscode/go-package-plantuml.git: https:/gitee.com/jscode/go-package-plantuml.git: invalid import path: malformed import path "https:/gitee.com/jscode/go-package-plantuml.git": invalid char ':
go: missing Git command. See https://golang.org/s/gogetcmd

然后上網(wǎng)差各種資料,仍然解決不了。

后來看了一篇博客,這位大佬用的是git clone(其實之前我也想過用git clone,但卡在了后續(xù)編譯錯誤上,讓我以為是go get獲取的項目做了特殊處理),這位大佬說:其實go get 和git clone其實干的事兒都差不多,g前者唯一做的特殊處理是存放路徑不同罷了。

至于是什么路徑我也不是很清楚。好吧,大佬給我喂了這ke定心丸,我把項目git clone下來了,然后又卡死在了編譯上。

下面是我遇到的錯誤之一:

好多其他的錯我讓我給清屏干掉了,就留下了這么一個。其實我的大部分錯誤都是Go語言那三個環(huán)境變量沒整對。GOPATH、GOROOT和PATH環(huán)境變量的問題。

GOPATH可以認為是項目的存放路徑(即工作路徑),不知道我這么理解正不正確,若不正確,哪位懂得請指出我的錯誤,但是這么理解好像項目是能正常工作的

GOROOT就是Go語言的安裝目錄,只能設(shè)為 *:/Go ,* 表示的是盤符。但是手賤不知道怎么改成了Go/bin,結(jié)果在編譯時候命令行提示找不到項目,然后出錯路徑很奇葩,里面有兩個bin,即路徑變成了**/bin/bin/***,這能找到才怪了。

Path這個是系統(tǒng)環(huán)境變量,需要在GOROOT的基礎(chǔ)上加上/bin。

然后變異的時候還是報錯,說項目在指定路徑下找不到需要的包或者文件,其實這個還是涉及到路徑的問題。

我的解決辦法是把那些找不到路徑的包全給拷到 */Go/src/目錄下,然后去修改報錯的代碼行處,但是即使是這樣有些文件還是找不到,我又想出了修改import的路徑,直接改成相對路徑。

這樣我的這個項目總算是編譯成功了。相對路徑可能有的代碼不好使,老大說建議都放到工作路徑下的src目錄下或者是Go的安裝目錄下的src文件夾中。

更正:注意別使用相對路徑,否則編譯成功后的exe在執(zhí)行期間會出幺蛾子

后來我發(fā)現(xiàn)我加目錄就是多次一舉,原項目之所以編譯時報錯是因為我壓根兒就沒有配置項目路徑(沒有講項目路徑加到GoPath中),配置好項目的GoPath路徑之后,直接編譯就能成功。

而且,如果不配置項目路徑到GoPath,僅僅只是像我第一種方法那樣解決了編譯錯誤,運行時也會報錯(這真是個悲傷的故事,我已經(jīng)開始在Goland里面手動畫UML類圖了),生成不了UML文件,命令行提示生成成功,但是路徑下就是找不到生成文件,因為實際上就是沒有生成,路徑?jīng)]配置對

補充:Go語言 使用Golang導(dǎo)入github的項目的時候出現(xiàn)Cannot resolve directory 'github.com'

在學(xué)習(xí)go語言過程中從github下載了幾個項目,但是使用golang通篇報紅,GOPATH反復(fù)檢查沒有設(shè)置錯,各種方法都找遍了,最終解決了記錄一下。

解決辦法

在golang的設(shè)置里面將圖中這個勾去掉

原因

原因是Goland 編輯器中項目設(shè)置為 go modules 項目,導(dǎo)致從gomod讀取,從而報錯,去掉勾,問題完美解決。

相關(guān)文章

  • GoLang調(diào)用鏈可視化go-callvis使用介紹

    GoLang調(diào)用鏈可視化go-callvis使用介紹

    與鏈路追蹤(Tracing)不同,Tracing關(guān)注復(fù)雜的分布式環(huán)境中各個服務(wù)節(jié)點間的調(diào)用關(guān)系,主要用于服務(wù)治理。而我們本次探索的代碼調(diào)用鏈路則是代碼方法級別的調(diào)用關(guān)系,主要用于代碼設(shè)計
    2023-02-02
  • Go語言七篇入門教程六網(wǎng)絡(luò)編程

    Go語言七篇入門教程六網(wǎng)絡(luò)編程

    這篇文章主要為大家介紹了Go語言的網(wǎng)絡(luò)編程,其中包含了Socket編程,Http編程以及RPC編程,本篇文章是Go語言七篇入門系列文章,有需要的朋友可以借鑒下
    2021-11-11
  • Golang 如何實現(xiàn)函數(shù)的任意類型傳參

    Golang 如何實現(xiàn)函數(shù)的任意類型傳參

    這篇文章主要介紹了Golang 實現(xiàn)函數(shù)的任意類型傳參操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Golang字符串變位詞示例詳解

    Golang字符串變位詞示例詳解

    這篇文章主要給大家介紹了關(guān)于GoLang字符串變位詞的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • 讓GPT教你用go語言和C語言開發(fā)IDE配置學(xué)習(xí)

    讓GPT教你用go語言和C語言開發(fā)IDE配置學(xué)習(xí)

    這篇文章主要介紹了讓GPT教你用go語言和C語言開發(fā)IDE配置學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Go語言中Struct與繼承與匿名字段和內(nèi)嵌結(jié)構(gòu)體全面詳解

    Go語言中Struct與繼承與匿名字段和內(nèi)嵌結(jié)構(gòu)體全面詳解

    這篇文章主要介紹了Go語言中Struct與繼承與匿名字段和內(nèi)嵌結(jié)構(gòu)體,Go語言中通過結(jié)構(gòu)體的內(nèi)嵌再配合接口比面向?qū)ο缶哂懈叩臄U展性和靈活性,感興趣的可以了解一下
    2023-04-04
  • Golang的循環(huán)中break和continue語句的用法講解

    Golang的循環(huán)中break和continue語句的用法講解

    這篇文章主要介紹了Golang的循環(huán)中break和continue語句的用法講解,是Go語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Golang pipe在不同場景下遠程交互

    Golang pipe在不同場景下遠程交互

    這篇文章主要介紹了Golang pipe在不同場景下遠程交互,pipe實現(xiàn)從一個進程重定向至另一個進程,它是雙向數(shù)據(jù)通道,用于實現(xiàn)進行間通信
    2023-03-03
  • Go語言字符串拼接方式與性能比較分析

    Go語言字符串拼接方式與性能比較分析

    這篇文章主要為大家介紹了Go語言字符串拼接方式與性能比較示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Golang實現(xiàn)拓撲排序(DFS算法版)

    Golang實現(xiàn)拓撲排序(DFS算法版)

    這篇文章主要介紹了Golang實現(xiàn)拓撲排序(DFS算法版),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評論

德昌县| 竹北市| 孟村| 双牌县| 西青区| 通城县| 陆良县| 紫阳县| 仁怀市| 云阳县| 湛江市| 峨眉山市| 临安市| 德令哈市| 沂南县| 寿阳县| 汉源县| 绥芬河市| 定结县| 岳阳县| 定边县| 梨树县| 廉江市| 习水县| 横山县| 进贤县| 东台市| 广水市| 平舆县| 来凤县| 司法| 汝城县| 连州市| 抚远县| 闻喜县| 亚东县| 沙河市| 宁远县| 叶城县| 彭泽县| 衢州市|