走吧,路很崎岖。感谢帮助

标签 go

好吧,我想我终于在没有更多想法或帮助的情况下坚持尝试了。我正在尝试使用
https://github.com/billgraziano/go-windows-svc/blob/master/cmd/gosvc/main.go .
我将其克隆过来并根据自述文件进行了调整。这是假设启动服务。该服务正在运行我们称之为 DCA 的东西,它可以启动服务器。所以我什至还没有开始调试其他问题。问题是在尝试构建时我得到了

PS C:\Users\rutger\go\src\go-windows-svc\cmd\gosvc> go build main.go

main.go:10:2: cannot find package "bitbucket.org/somepalce/go-dca-base/cmd/dca-agent/main.go" in any of:
        c:\go\src\bitbucket.org\someplace\go-dca-base\cmd\dca-agent\main.go (from $GOROOT)
        C:\Users\rutger\go\src\bitbucket.org\somepalce\go-dca-base\cmd\dca-agent\main.go (from $GOPATH)

这是他程序中的主要部分,但第一个导入相对于我的路径进行了调整。 包主

import (
    "bitbucket.org/someplace/go-dca-base/cmd/dca-agent/main.go"
    "github.com/pkg/errors"
)

windows服务项目的文件结构

C:\USERS\RUTGER\GO\SRC\GO-WINDOWS-SVC
├───app
└───cmd
    └───gosvc
          -- (has the main)

DCA 的文件结构

C:\USERS\RUTGER\GO\SRC\BITBUCKET.ORG\SOMEPLACE\GO-DCA-BASE\CMD\DCA-AGENT
├───cmd
       -- (has main for DCA)
├───compile
└───logs

PS C:\Users\rutger\go\src\go-windows-svc\cmd\gosvc> go build main.go main.go:10:2: 在以下任何一个中找不到包“bitbucket.org/somepalce/go-dca-base/cmd/dca-agent/main.go”: c:\go\src\bitbucket.org\somepalce\go-dca-base\cmd\dca-agent\main.go(来自 $GOROOT) C:\Users\rutger\go\src\bitbucket.org\somepalce\go-dca-base\cmd\dca-agent\main.go(来自 $GOPATH) PS C:\Users\rutger\go\src\go-windows-svc\cmd\gosvc>

go env 的输出 PS C:\Users\rutger\go\src\go-windows-svc\cmd\gosvc> 去环境

set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\rutger\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\rutger\go
set GOPROXY=
set GORACE=
set GOROOT=c:\go
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\rutger\AppData\Local\Temp\go-build634488178=/tmp/go-build -gno-record-gcc-switches

我阅读了堆栈中的其他问题及其要求:\n

Cant find package from $GOROOT and $GOPATH\n

https://forum.golangbridge.org/t/go-build-cant-find-package/11880/10\n

Cant find package from $GOROOT and $GOPATH

因此,我们将不胜感激任何帮助。我认为添加 vendor 不会有任何问题,因为所有路径看起来都很好。

最佳答案

您导入的 bitbucket.org/printtrackerpro/go-dca-base/cmd/dca-agent/main.go 无效,原因有二:

  • 在 Go 中导入,而不是文件
  • 根本不能导入main包,因为main是程序的入口点,不允许循环依赖

关于走吧,路很崎岖。感谢帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57210977/

相关文章:

使用 httptest 单元测试 http 请求重试

loops - 如何在范围循环中添加到 map 中

http - http.FileServer仅提供index.html

Golang将nil作为可选参数传递给函数?

go - 如何使用通用结构

dictionary - 关于 Golang 编程语言中的 Map

go - 如何让多个对象从一个go子程序中获取数据

go - istio 多集群间流量管理

去吧,麻烦遍历数组

rest - 使用 GO API 查找可用的 RAM