我使用gccgo編譯我的項目。這是我的目錄佈局。我讀這Q/A線程How to use custom packages in golang?用多個文件編譯項目
所以跟着這個一個
src/
+-fibo/
| +-fibo.go
+main.go
,這裏是上市
main.go
package main
import (
"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.go
代碼package fibo
import "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 $
我被困在這裏。我嘗試了不同的目錄結構組合。沒有幫助。我錯過了什麼?有沒有我應該設置的任何環境變量,即使是這樣?
不確定gcc。但是:你想導入一個本地包,所以你的導入看起來應該像'import'./fib「'不''src/fib」',因爲在GOROOT下你真的沒有包「src/fib」 t似乎使用GOPATH,但我不知道gcc如何處理這個)。 – Volker