简体   繁体   English

去找不到本地包

[英]Go can't find local package

I have two projects, one is a library and the other is a utility. 我有两个项目,一个是库,另一个是实用程序。 I've used go install to build the library and place it in the pkg area. 我已经使用go install来构建库并将其放置在pkg区域中。 This seems to have worked as expected. 这似乎按预期工作。

sbio $ pwd
      /home/mjohn/workspaces/goprojects/src/crown/sbio
sbio $ CC=armv7l-timesys-linux-gnueabi-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=7 go install
sbio $ ls ../../../pkg/linux_arm/crown
      sbio.a

My issue is when I try to have my utility use this library. 我的问题是当我尝试让我的实用程序使用此库时。 It complains about no buildable Go source files but its looking under the src directory, which makes me think its not seeing it in the pkg area. 它抱怨no buildable Go source files而是在src目录下查找,这让我认为它在pkg区域pkg不到它。 My import path in the utility is crown/sbio . 我在实用程序中的导入路径是crown/sbio Any ideas would be helpful. 任何想法都会有所帮助。

utility $ GOOS=linux GOARCH=arm GOARM=7 go build
         go build crown/sbio: no buildable Go source files in /home/mjohn/workspaces/goprojects/src/crown/sbio

utility $ GOOS=linux GOARCH=arm GOARM=7 go build -v -x -work
         WORK=/tmp/go-build709862068
         crown/sbio
         github.com/jessevdk/go-flags
         mkdir -p $WORK/github.com/jessevdk/go-flags/_obj/
         os/signal
         mkdir -p $WORK/github.com/jessevdk/
         cd /home/mjohn/workspaces/goprojects/src/github.com/jessevdk/go-flags
         /home/mjohn/software/go/pkg/tool/linux_386/compile -o $WORK/github.com/jessevdk/go-flags.a -trimpath $WORK -p github.com/jessevdk/go-flags -complete -buildid 2e7b82d3996437f712d51c2be269e6cd3eb809d6 -D _/home/mjohn/workspaces/goprojects/src/github.com/jessevdk/go-flags -I $WORK -pack ./arg.go ./closest.go ./command.go ./command_private.go ./completion.go ./convert.go ./error.go ./flags.go ./group.go ./group_private.go ./help.go ./ini.go ./ini_private.go ./man.go ./multitag.go ./option.go ./option_private.go ./optstyle_other.go ./parser.go ./parser_private.go ./termsize.go ./termsize_linux.go
         mkdir -p $WORK/os/signal/_obj/
         mkdir -p $WORK/os/
         cd /home/mjohn/software/go/src/os/signal
         /home/mjohn/software/go/pkg/tool/linux_386/compile -o $WORK/os/signal.a -trimpath $WORK -p os/signal -buildid 36d5db084a1ab49c3fbb474d340be7996d6606d8 -D _/home/mjohn/software/go/src/os/signal -I $WORK -pack -asmhdr $WORK/os/signal/_obj/go_asm.h ./doc.go ./signal.go ./signal_unix.go
         mkdir -p $WORK/crown/sbio/_obj/
         mkdir -p $WORK/crown/
         go build crown/sbio: no buildable Go source files in /home/mjohn/workspaces/goprojects/src/crown/sbio
         /home/mjohn/software/go/pkg/tool/linux_386/asm -o $WORK/os/signal/_obj/sig.o -trimpath $WORK -I $WORK/os/signal/_obj/ -I /home/mjohn/software/go/pkg/include -D GOOS_linux -D GOARCH_arm ./sig.s
         pack r $WORK/os/signal.a $WORK/os/signal/_obj/sig.o # internal

utility $ go env
         GOARCH="386"
         GOBIN=""
         GOEXE=""
         GOHOSTARCH="386"
         GOHOSTOS="linux"
         GOOS="linux"
         GOPATH="/home/mjohn/workspaces/goprojects"
         GORACE=""
         GOROOT="/home/mjohn/software/go"
         GOTOOLDIR="/home/mjohn/software/go/pkg/tool/linux_386"
         CC="gcc"
         GOGCCFLAGS="-fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build583017880=/tmp/go-build -gno-record-gcc-switches"
         CXX="g++"
         CGO_ENABLED="1"

utility $ go version
         go version go1.7.4 linux/386

Thanks for any help. 谢谢你的帮助。

I was able to solve my issue by building the utility with the CC and CGO_ENABLED variables defined. 我可以通过使用定义的CCCGO_ENABLED变量构建实用程序来解决我的问题。 I needed them defined for building the utility even though it didn't include any cgo code it was still needed because of the library. 我需要为构建实用程序定义它们,即使它不包含由于库而仍然需要的任何cgo代码。

If it's possible to build the utility without needing to do this I would still be interested as it's a pain to have every user of the library be required to define these. 如果有可能无需执行此操作就可以构建实用程序,我仍然会很感兴趣,因为要求该库的每个用户都定义它们是一件很痛苦的事情。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM