プロジェクトのコンパイルには gccgo を使用します。これが私のディレクトリレイアウトです。この Q/A スレッドを読みました 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 $
私はここで立ち往生しています。ディレクトリ構造のさまざまな組み合わせを試しました。誰も助けませんでした。私は何が欠けていますか?この場合でも、設定する必要がある環境変数はありますか??