Golang使用主程序包代码和.a文件进行编译吗?

在我的情况下,我需要发布没有源代码但只有编译形式的lib项目。
给出,< / p>


  • 一些已编译.a文件形式的库程序包,</ li>
  • 以源代码形式</ li> \ n
  • 所有基于匹配构建的平台类型,</ li>
    </ ul>

    是否可以编译main并将其与.a文件链接成一个 可执行文件? 如果可行怎么办? </ p>
    </ div>

展开原文

原文

In my scenario I'll need to release my lib project without source code but a compiled form. Given,

  • Some library package in the form of compiled .a files,
  • a main package in form of source code,
  • all their platform types where they're built on match,

is it possible to compile the main and link it with .a files up into an executable? How to do it if doable?

1个回答



除非.a文件是由于“安装”(执行安装或安装)软件包的结果而生成的。 “ .a”库文件是针对要使用该文件的环境的OS,机器体系结构,go版本等“定制的”。 您图书馆的用户不太可能满足所有要求。 因此,也许还有其他原因,没有源代码的“ .a”文件没有用。</ p>
</ div>

展开原文

原文

Not unless the .a files were generated as a result of "installing" (go get or go install) a package. A ".a" library file is "customized" for the OS, machine architecture, go version etc. of the environment in which it will be used. Users of your library are not likely to meet all of the requirements. For that reason, and perhaps others, ".a" files without source code are not useful.

dsgdfh302506
dsgdfh302506 有关在构建过程中如何生成“已安装软件包对象”(.a文件)的信息,请参见[link] golang.org/pkg/go/build。
接近 6 年之前 回复
dousenjue3214
dousenjue3214 我从未尝试使用不是由于安装而创建的.a文件。 换句话说,我从来没有使用没有可用源代码的.a文件。 您可以尝试将文件放在适当的位置**,然后看看会发生什么。 **适当的位置是$ GOPATH / pkg / $ GOOSARCH / samepath / as / source / file.a
接近 6 年之前 回复
dtbam62840
dtbam62840 谢谢,接下来有2个问题。.1)由于.a文件不是原始文件,而是最初与代码一起使用并与main pkg一起编译的,因此,有没有办法删除lib源代码和其余的.a文件。 文件仍然可以用于链接。 (我们假设他们在完全相同的环境中。)2)任何文档或博客都在谈论这个问题的见解?
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐