未定义导入函数



在没有任何问题的情况下使用函数有问题。在Go语言中,以大写字母开头的函数在包外是可见的。


node.go

package grid  
type Node struct {  
    id uint  
    name string  
    pos_i uint  
    pos_j uint  
    node_type string  
}

grid.go

package grid
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    the Grid Structure
____________________________________________________________________________
*/
type Grid struct {
    // The numbers of divisions in the Grid
    number_lines uint
    number_columns uint 
    // The Sizes of the Grid
    width uint
    height uint
    // An Array of the Nodes
    nodes []Node
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Initialize the Grid
____________________________________________________________________________
*/
func InitGrid() *Grid {
    g := new(Grid)
    g.number_lines = 4
    g.number_columns = 4
    g.width = 400
    g.height = 400
    return g
}

main.go

package main
import (
    "fmt"
    "grid"
)
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Entry Point of the Application
____________________________________________________________________________
*/
func main() {
    grid_ := grid.InitGrid()
    fmt.Println(grid_)    
}

src/网格/Makefile

include $(GOROOT)/src/Make.inc
TARG=grid
GOFILES=
    node.go
    grid.go
include $(GOROOT)/src/Make.pkg

src/main/Makefile

include $(GOROOT)/src/Make.inc
TARG=main
GOFILES=
    main.go
include $(GOROOT)/src/Make.cmd

当我编译网格包时,一切都很顺利,但是当我试图编译主包时,它给了我错误信息:

manbear@manbearpig:~/Bureau/go_code/main$ gomake  
6g  -o _go_.6 main.go  
main.go:15: undefined: grid.InitGrid  
make: *** [_go_.6] Erreur 1  

我不明白为什么它会给我这个错误,我已经花了一些时间阅读Go文档,但我找不到它不工作的原因。

谢谢你的帮助。

您只使用node.go源文件编译并安装了grid包。用node.gogrid.go源文件编译并安装grid包。例如,

include $(GOROOT)/src/Make.inc
TARG=grid
GOFILES=
    grid.go
    node.go
include $(GOROOT)/src/Make.pkg

最新更新