dreinuqm992401
2018-05-11 09:58
浏览 54
已采纳

如何针对源代码和仅二进制包编译Go程序?

Background: I wrote a feature(in packageA) and don't want anyone see my code. So I installed it into .a file(packageA.a). I use it by below method:

package main  
import packageA  
func main(){  
    packageA.Run()  
}   

Then I do

go tool compile -I lib/ main.go
go tool link -o main -L main.o
It can work.

But when I do this it doesn't work.
I wrote another feature(packageB) in $GOPATH/src/project/packageB
and update main.go

// main.go
package main
import (
    "packageA"
    _ "project/packageB"
)

func main(){
    packageA.Run()
}

exec go tool compile -I lib/ main.go

but error can't find import "packageB"

my directory layout

project  
     main.go  
     lib/  
        packageA.a  
     packageB  
        xxx.go  

Wanted to know if it's good practice to do that and what would be the best way to do that? go tool compile how to import .a file and source code?

Thanks sincerely in advance.

图片转代码服务由CSDN问答提供 功能建议

背景:我写了一个功能(在packageA中),不想让任何人看到我的代码。 所以我将其安装到.a文件(packageA.a)中。 我通过以下方法使用它:

  package main 
import packageA 
func main(){
 packageA.Run()
} 
   
 
 

然后我做

go工具编译-I lib / main.go
go工具链接-o main- L main.o 它可以工作。

但是当我这样做时它不起作用。
我在 $ GOPATH / src / project / packageB < br> 并更新main.go

  // main.go 
package main 
import(
“ packageA” 
 _“ project / packageB” 
)\  n 
func main(){
 packageA.Run()
} 
   
 
 

exec go工具编译-I lib / main.go

,但错误 找不到导入的“ packageB”

我的目录布局

 项目
 main.go 
 lib / 
 packageA.a 
 packageB 
 xxx.go 
   
 
 <  p>想知道这样做是否是个好习惯,什么是最好的方法?  go工具编译如何导入.a文件和源代码? 
 
 

衷心感谢。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题