duanmu5039 2019-04-20 16:55
浏览 336

在Go中的同一项目中导入文件的正确方法

I have a Go project with a structure like this:

cmd
  myapp
    main.go
internal
  app
    myapp
      impl.go

Now in main.go, I want to import impl.go. GoLand tells me that I should do it like this:

import (
  "myproj/internal/app/myapp"
)

However, I compile the project on another machine (because I use EGL and that's not available on macOS). When I do

go build cmd/myapp/main.go

there, it cannot resolve the import. So I changed the import to use the full path of my github repo, like this:

import (
  "github.com/flyx/myproj/internal/app/myapp"
)

Code compiles fine now. However, after I pulled that back into GoLand, it cannot resolve the import anymore. Curiously, every item in the path gives a separate error, e.g.

Cannot resolve directory 'github.com'

That's very strange since github.com is very obviously in my $GOPATH/src and other imports from there that are not my current project are working.

So… what am I doing wrong? I don't even understand how GoLand can resolve the path starting with myproj. I checked whether GOPATH is correctly set in GoLand and that's the case.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值