亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 go 中編譯包含多個文件的項目

在 go 中編譯包含多個文件的項目

Go
慕碼人8056858 2021-07-02 10:01:13
我使用 gccgo 來編譯我的項目。這是我的目錄布局。我讀了這個 Q/A thread How to use custom packages in golang?所以跟著這個src/   +-fibo/   |   +-fibo.go   +main.go  這是代碼清單main.gopackage mainimport (    "os"    "fmt"    "strconv"    "src/fibo")func main(){    if len(os.Args) < 2 {        fmt.Printf("ur input sucks\n")    }    num,_ := strconv.Atoi(os.Args[1])    fibo.Fibo(num)}fibo/fibo.gopackage fiboimport  "fmt" func Fibo(num int) {    var a,b int    for i :=0; i< num; i++ {        a, b = b, a+b        fmt.Print(a, " ")    }    fmt.Print("\n")}但是當我嘗試編譯時,我遵循了通常的 gcc 程序。分別編譯文件并將它們鏈接在一起成為最終的可執行文件。我收到這個錯誤.../go-lang-expts/src $ gccgo -c -ofibo/fibo.o fibo/fibo.go .../go-lang-expts/src $ gccgo -c -omain.o main.go    main.go:7:10: error: import file ‘src/fibo’ not found    main.go:18:2: error: reference to undefined name ‘fibo’.../go-lang-expts/src $ 我被困在這里。我嘗試了不同的目錄結構組合。沒有任何幫助。我錯過了什么?有沒有我應該設置的環境變量,即使是這樣??
查看完整描述

2 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

看起來您可能沒有設置GOPATH環境變量

如何編寫 Go 代碼

GOPATH 環境變量指定工作區的位置。它可能是您在開發 Go 代碼時需要設置的唯一環境變量。

鑒于您當前的目錄結構

src/  

 +-fibo/  

 |   +-fibo.go  

 +main.go

如果您的src目錄在下,GOPATH那么您應該可以執行以下操作:


import "fibo"

在main.go。

又見“GOPATH環境變量”go命令的文檔。


查看完整回答
反對 回復 2021-07-05
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

這組命令對我有用。

.../go-lang-expts/src $ gccgo -c -fgo-pkgpath=fibo -ofibo/fibo.o fibo/fibo.go

這將命名包 fibo,所以你必須在 main.go 中導入它

import "fibo"

現在你可以通過告訴 fibo.o 庫在哪里來編譯 main.go

.../go-lang-expts/src $ gccgo -c main.go -Ifibo

然后你需要鏈接這兩個文件來創建一個可執行的main

.../go-lang-expts/src $ gccgo -o main main.o fibo/fibo.o


查看完整回答
反對 回復 2021-07-05
  • 2 回答
  • 0 關注
  • 434 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號