草庐IT

转到库 : cannot find module providing package lib

coder 2024-07-12 原文

我正在创建 3 个独立的 go 项目:aceaces-client 和两个项目共享的库 aceslib。根据 go-documentation ( https://golang.org/doc/code.html#Library ),我在包含共享库时遇到了问题

aceslib 中的所有 go 文件共享包名 aceslib。我使用 import lib "aceslib" 将库包含在 ace 和 aces-client 中。我可以使用 go build 构建库,并使用 go install 安装它,在目录列表中可以看到文件 go/pkg/windows_amd64/aceslib .a 被创建。

但是当我尝试构建 aceace-client go 时提示:

$ go build 
build ace: cannot load aceslib: cannot find module providing package aceslib

我的设置:

$ go version
go version go1.12.9 windows/amd64
$ go env
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Yulivee\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\Yulivee\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=C:\Users\Yulivee\go\src\ace\go.mod
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 -fmessage-length=0 -fdebug-prefix-map=C:\Users\Yulivee\AppData\Local\Temp\go-build024649150=/tmp/go-build -gno-record-gcc-switches

目录结构:

.
├── bin
│   ├── ace-client.exe
│   └── ace.exe
├── pkg
│   ├── mod
│   │   ├── cache
│   │   └── golang.org
│   └── windows_amd64
│       ├── ace
│       ├── aceslib.a
│       └── golang.org
└── src
    ├── ace
    │   ├── README.md
    │   ├── go.mod
    │   ├── go.sum
    │   └── main.go
    ├── ace-client
    │   └── main.go
    ├── aceslib
    │   ├── README.md
    │   ├── crypto.go
    │   ├── go.mod
    │   └── utils.go

我错过了什么?


我尝试过的方法没有帮助并导致同样的错误:

$ go clean -i -x -cache -modcache
$ chmod 755 go/pkg/windows_amd64/aceslib.a
$ go get
build ace: cannot load aceslib: cannot find module providing package aceslib
$ rm -rf go/pkg/*

最佳答案

目录结构和包名有点不对 - 它应该是你项目仓库的 URL,就像所有其他不是来自 stdlib 的导入一样。如果你没有 repo 并且想使用本地引用,你需要向 ace/go.mod 添加一个 replace 指令,如下所示:

replace aceslib => ../aceslib

记录在案in the Modules docs .

关于转到库 : cannot find module providing package lib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57894092/

有关转到库 : cannot find module providing package lib的更多相关文章

  1. ruby-on-rails - 我需要从 HTML 转到 markdown,有什么建议吗? - 2

    我正在使用Maruku,将Markdown(超集)转换为HTML,你知道我该怎么做才能从HTML转换为Markdown吗? 最佳答案 Google发现了一个名为reverse_markdown的ruby​​脚本.它似乎可以满足您的需求。 关于ruby-on-rails-我需要从HTML转到markdown,有什么建议吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/175162

  2. ruby - 是否有任何命令可以使用 vim 转到 Ruby block 的末尾(或开始) - 2

    有没有办法使用vim结束Rubyblock?例如moduleSomeModule#defsome_methodendend我想用一个命令从光标所在的位置移动到block的末尾,这可能吗?我读过thisdocumentation,但它似乎不适用于.rb文件,我在某些地方读到它只适用于C(虽然还没有尝试过)。提前致谢。 最佳答案 rubyforge好像有官方包对此有一些支持:TheRubyftpluginnowincludesRubyspecificimplementationsforthe[[,]],[],][,[m,]m,[M,an

  3. ruby - 在 Vim 中使用 Ctags 跳转到 Ruby bang 方法 - 2

    我在使用ExhuberantCtags跳转到Rubybang方法时遇到问题。我已经搜索过其他有类似问题的人,但找不到任何东西。可以使用以下小型Rub​​y类显示该问题的示例:classHellodefstartmethod!enddefmethod#Blahenddefmethod!#Blahendend当ctags-R.在此文件上运行时,生成的tags文件包含以下两行,表明这两种方法都是在生成时发现的:methodtest.rb/^defmethod$/;"fclass:Hellomethod!test.rb/^defmethod!$/;"fclass:Hello但是,如果我将光标放

  4. ruby - “运行失败跳转到方法定义”错误 : undefined method `current_line' for TextMate:Module - 2

    更新:我想通了。Ctrl-F仅在未选择我正在搜索的方法时有效。游标只需要在方法名中。我刚升级到TextMate2。当我选择一个方法并使用Ctrl+F转到它的定义时,我得到:>FailurerunningJumptoMethodDefinition这是痕迹:/Users/ilikepie/Library/ApplicationSupport/TextMate/Managed/Bundles/RubyonRails.tmbundle/Support/lib/rails/text_mate.rb:54:in`method_missing':undefinedmethod`current_li

  5. ruby - 如何使用 Vim 从 do 跳转到 Ruby block 的末尾? - 2

    我正在使用vim进行ruby​​、php和perl开发。有快捷方式%可以从block(子例程/函数/方法/if)的开头跳转到结尾,反之亦然。对我来说,ruby中的do/end标记上的%不起作用。我如何用vim做到这一点? 最佳答案 matchitplugin允许匹配的不仅仅是括号和注释。可以找到ruby​​版本here. 关于ruby-如何使用Vim从do跳转到Rubyblock的末尾?,我们在StackOverflow上找到一个类似的问题: https://

  6. ruby - 如何从正在运行的脚本转到 IRB 提示符? - 2

    我可以从正在运行的Ruby脚本转到IRB提示吗?我想运行一个脚本,然后让它在程序中的某个点给我一个IRB提示以及程序的当前状态,但不仅仅是通过运行rdebug和设置断点。 最佳答案 Pry(一个IRB替代方案)也可以让你这样做,事实上它是为这个用例从头开始设计的:)这就像将binding.pry放在您想要开始session的位置一样简单:require'pry'x=10binding.pry在session中:pry(main)>putsx=>10查看网站:http://pry.github.com请让我们:在您的代码中的任何一点进

  7. javascript - 转到Vuejs 2中的特定路线 - 2

    我是VueJS的新手,我正在使用VueJS2Webpack模板。如果登录成功,我试图从登录组件重定向到主组件,我已经尝试了很多东西,但我仍然遇到错误。这是我的路线:constrouter=newVueRouter({mode:'history',routes:[{'name':'home',path:'/',component:require('./components/Home.vue'),beforeEnter:(to,from,next)=>{if(!localStorage.getItem('user')){next('/login')}}},{'name':'profile'

  8. javascript - 为什么我的 jest.mock 中的 Promise reject() 会转到 then() 而不是 catch()? - 2

    我有两个文件,getItemInfo.js进行API调用,getItemInfo.test.js是相应的Jest测试文件。在测试文件中,我正在模拟由Node模块request-promise触发的http调用。问题在第二个代码块上,被*********包围。基本上为什么reject()错误仍然会在第二个单元测试中进入then()block?//getItemInfo.jsconstrp=require('request-promise');constgetItemInfo=(id)=>{constroot='https://jsonplaceholder.typicode.com/po

  9. javascript - 手动转到上一个状态时 $ionicHistory.backView 的状态不正确 - 2

    我做了一个小实验:http://codepen.io/hawkphil/pen/NqMomm?editors=101这是我的状态流程(点击按钮):Home->Fact1->Fact2->Fact3->Fact2在每次状态更改时,我都会在console.log中显示$ionicHistory.backView但是,您可以在pen.js:64行中看到,奇怪的事情发生了。$ionicHistory.backView“认为”我从后退按钮到达了app.fact2,它显示app.fact1作为前一个状态(行pen.js:53)。这是不正确的,对吧?它应该将app.fact3显示为之前的状态,因为我

  10. javascript - 使用 __dirname 时如何转到父目录? - 2

    这个问题在这里已经有了答案:Howtogoback1folderlevelwith__dirname?(11个答案)关闭10个月前。目录结构:WebApiAngular色GulpFile.js测试业力.conf.js来自GulpFile.js的Gulp代码gulp.task('test',function(done){karma.start({configFile:_configFile:__dirname+'\\..\\test\\karma.conf.js',singleRun:true},done);});所以我的问题是转到父目录并访问karma.conf.js。由于某种原因,路

随机推荐