我创建了由名称的库libfastget这是在src我的程序作为
libfastget
src
src |-libfastget | |-libfastget.go | |-MainProgram |-main.go
并libfastget输出fastget如下功能
fastget
package libfastget import ( "fmt" "io" ) func fastget(urlPtr *string, nPtr *int, outFilePtr *string) download { ..... return dl }
当我在主程序中使用库时
package main import ( "fmt" "net/http" "os" "libfastget" "path/filepath" "strings" "flag" "time" ) func uploadFunc(w http.ResponseWriter, r *http.Request) { n:=libfastget.fastget(url,4,filename) } }
尝试使用构建时出现以下错误 go build
go build
# FServe ./main.go:94: cannot refer to unexported name libfastget.fastget ./main.go:94: undefined: libfastget.fastget
奇怪的是,库文件libfastget.a位于pkg文件夹中。
您需要使函数的名称可以大写导出:
func Fastget(...
用作:
n:=libfastget.Fastget(url,4,filename)
规范中提到:“ 导出的标识符 ”:
标识符可以被导出以允许从另一个包访问它。如果同时满足以下条件,则导出标识符
Lu
所有其他标识符都不会导出。