Compilation 在go中编译包含多个文件的项目

Compilation 在go中编译包含多个文件的项目,compilation,go,Compilation,Go,我使用gccgo来编译我的项目。这是我的目录布局。我读了这篇问答文章 接下来就是这个 src/ +-fibo/ | +-fibo.go +main.go 下面是代码清单 梅因,加油 我被困在这里了。我尝试了不同的目录结构组合。没人帮忙。我错过了什么?是否有任何环境变量我应该设置,即使是这样???看起来您可能没有设置 从 GOPATH环境变量指定工作区的位置。它可能是开发Go代码时需要设置的唯一环境变量 鉴于您当前的目录结构 src/ +-fibo/ |

我使用gccgo来编译我的项目。这是我的目录布局。我读了这篇问答文章

接下来就是这个

src/  
 +-fibo/  
 |   +-fibo.go  
 +main.go  
下面是代码清单

梅因,加油
我被困在这里了。我尝试了不同的目录结构组合。没人帮忙。我错过了什么?是否有任何环境变量我应该设置,即使是这样???

看起来您可能没有设置

GOPATH环境变量指定工作区的位置。它可能是开发Go代码时需要设置的唯一环境变量

鉴于您当前的目录结构

src/  
 +-fibo/  
 |   +-fibo.go  
 +main.go
如果您的
src
目录位于
GOPATH
下,则您应该能够执行以下操作:

import "fibo"
main.go中


另请参见。

看起来您可能没有设置

GOPATH环境变量指定工作区的位置。它可能是开发Go代码时需要设置的唯一环境变量

鉴于您当前的目录结构

src/  
 +-fibo/  
 |   +-fibo.go  
 +main.go
如果您的
src
目录位于
GOPATH
下,则您应该能够执行以下操作:

import "fibo"
main.go中


另请参见。

这组命令对我有效

.../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
然后,您需要链接这两个文件以创建一个可执行主文件

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

这套命令对我很有效

.../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
然后,您需要链接这两个文件以创建一个可执行主文件

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

不确定gcc。但是:您想导入一个本地包,所以您的导入应该像
import“/fib”
而不是
“src/fib”
,因为GOROOT下实际上也没有包“src/fib”(而且您似乎没有使用GOPATH,但我不知道gcc如何处理)。不确定gcc。但是:您希望导入一个本地包,因此您的导入应该像
import./fib“
而不是
“src/fib”
,因为在GOROOT下实际上也没有包“src/fib”(而且您似乎没有使用GOPATH,但我不知道gcc如何处理这个问题)。