在测试一个程序的时候,遇到如下报错user:LookupIdnotimplementedonlinux/386golang服务器环境2.6.32-279.el6.x86_64操作系统版本CentOS5.8go的环境GOARCH="386"GOBIN="/home/apps/go/bin"GOCHAR="8"GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="linux"GOOS="linux"GOPATH="/home/apps/go-project/GO"GORACE=""GOROOT="/home/apps/go"GOTOOLDIR="/home/apps/go/pkg/tool/linux_amd64"TERM="dumb"CC="gcc"GOGCCFLAGS="-g-O2-fPIC-m32"CXX="g++"CGO_ENABLED="0"go的版本goversiongo1.2.1linux/amd64代码如下:packagemainimport("encoding/json""fmt""log""os/user")funcmain(){u,err:=user.LookupId("500")iferr!=nil{log.Fatal(err)}data,err:=json.MarshalIndent(u,"","")iferr!=nil{log.Fatal(err)}fmt.Printf("%s\n",data)}提问,在我现有的环境下,我要如何解决这个问题,这个报错,是说linux/386没有Lookupid的实现,使用什么命令编译会不出现这个问题?注:在go的用户组也看到类似问题,但是没有看的很明白连接为Crosscompilationandos/user(cgoproblem)
2 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
不同平台实现不一样的情况,我一般会针对不同的平台单独封装。比如你的情况:既然linux/386没有Lookupid的实现,我会把u,err:=user.LookupId("500")单独搞到一个文件去实现,比如386平台lookuppid_386.gofuncLookupId(idstring)(*User,error){//实现}其它有实现的平台,可以直接调用api,比如lookuppid_unix.gofuncLookupId(idstring)(*User,error){returnuser.LookupId(id)}你业务逻辑调用自己实现的LookupId函数
添加回答
举报
0/150
提交
取消