亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

聊聊Go語(yǔ)言編譯github上的項(xiàng)目遇到的坑

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

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

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

首先根據(jù)網(wǎng)上的文章,搞這個(gè)項(xiàng)目的第一步是go get **********(項(xiàng)目路徑),但是第一步就沒(méi)邁出去,各種報(bào)錯(cuò)

下面就是錯(cuò)誤列表:

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)差各種資料,仍然解決不了。

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

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

下面是我遇到的錯(cuò)誤之一:

好多其他的錯(cuò)我讓我給清屏干掉了,就留下了這么一個(gè)。其實(shí)我的大部分錯(cuò)誤都是Go語(yǔ)言那三個(gè)環(huán)境變量沒(méi)整對(duì)。GOPATH、GOROOT和PATH環(huán)境變量的問(wèn)題。

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

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

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

然后變異的時(shí)候還是報(bào)錯(cuò),說(shuō)項(xiàng)目在指定路徑下找不到需要的包或者文件,其實(shí)這個(gè)還是涉及到路徑的問(wèn)題。

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

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

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

后來(lái)我發(fā)現(xiàn)我加目錄就是多次一舉,原項(xiàng)目之所以編譯時(shí)報(bào)錯(cuò)是因?yàn)槲覊焊鶅壕蜎](méi)有配置項(xiàng)目路徑(沒(méi)有講項(xiàng)目路徑加到GoPath中),配置好項(xiàng)目的GoPath路徑之后,直接編譯就能成功。

而且,如果不配置項(xiàng)目路徑到GoPath,僅僅只是像我第一種方法那樣解決了編譯錯(cuò)誤,運(yùn)行時(shí)也會(huì)報(bào)錯(cuò)(這真是個(gè)悲傷的故事,我已經(jīng)開(kāi)始在Goland里面手動(dòng)畫(huà)UML類(lèi)圖了),生成不了UML文件,命令行提示生成成功,但是路徑下就是找不到生成文件,因?yàn)閷?shí)際上就是沒(méi)有生成,路徑?jīng)]配置對(duì)

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

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

解決辦法

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

原因

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

相關(guān)文章

  • GO語(yǔ)言基本類(lèi)型分析

    GO語(yǔ)言基本類(lèi)型分析

    這篇文章主要介紹了GO語(yǔ)言基本類(lèi)型,較為詳細(xì)的分析了整形、浮點(diǎn)型、字符串、指針等類(lèi)型的具體用法,是深入學(xué)習(xí)GO語(yǔ)言所必須掌握的重要基礎(chǔ),需要的朋友可以參考下
    2014-12-12
  • Go Generate 代替 Makefile使用方法詳解

    Go Generate 代替 Makefile使用方法詳解

    這篇文章主要為大家介紹了Go Generate 代替 Makefile使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • golang開(kāi)發(fā)微框架Gin的安裝測(cè)試及簡(jiǎn)介

    golang開(kāi)發(fā)微框架Gin的安裝測(cè)試及簡(jiǎn)介

    這篇文章主要為大家介紹了golang微框架Gin的安裝測(cè)試及簡(jiǎn)介,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • go語(yǔ)言中匿名函數(shù)的作用域陷阱詳解

    go語(yǔ)言中匿名函數(shù)的作用域陷阱詳解

    GO語(yǔ)言的匿名函數(shù)(anonymous?function),其實(shí)就是閉包.是指不需要定義函數(shù)名的一種函數(shù)實(shí)現(xiàn)方式,下面這篇文章主要給大家介紹了關(guān)于go語(yǔ)言中匿名函數(shù)作用域陷阱的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • go mock server的簡(jiǎn)易實(shí)現(xiàn)示例

    go mock server的簡(jiǎn)易實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了go mock server的簡(jiǎn)易實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Golang中的archive/zip包的常用函數(shù)詳解

    Golang中的archive/zip包的常用函數(shù)詳解

    Golang 中的 archive/zip 包用于處理 ZIP 格式的壓縮文件,提供了一系列用于創(chuàng)建、讀取和解壓縮 ZIP 格式文件的函數(shù)和類(lèi)型,下面小編就來(lái)和大家講解下常用函數(shù)吧
    2023-08-08
  • VS?Code安裝go插件失敗原因分析以及解決方案

    VS?Code安裝go插件失敗原因分析以及解決方案

    vscode安裝go插件時(shí),由于各種原因,在安裝插件時(shí)總是失敗,下面這篇文章主要給大家介紹了關(guān)于VS?Code安裝go插件失敗原因分析以及解決的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Golang操作命令行的幾種方式總結(jié)

    Golang操作命令行的幾種方式總結(jié)

    這篇文章主要介紹了Golang操作命令行的幾種方式總結(jié),文章通過(guò)圍主題思想展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • golang守護(hù)進(jìn)程用法示例

    golang守護(hù)進(jìn)程用法示例

    這篇文章主要介紹了golang守護(hù)進(jìn)程用法,結(jié)合實(shí)例形式分析了Go語(yǔ)言守護(hù)進(jìn)程的具體實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2016-07-07
  • 解決golang中container/list包中的坑

    解決golang中container/list包中的坑

    這篇文章主要介紹了解決golang中container/list包中的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04

最新評(píng)論