如何使用.a文件编译golang程序(无源代码)

如何使用.a文件编译golang程序(无源代码),go,packages,Go,Packages,我需要编译我的程序-main.go和没有源代码的bigPak包。仅存在bigPak.a tnto GOPATH/pkg 你能给我一个compile main.go with bigPak.a的例子吗?非常简单:只需在正确的$GOPATH/src位置生成一个假的bigPak包(一个空的包bigPak就可以了)和(重要的)确保该合成源在bigPak.a的改性时间之前有一个改性时间。go工具应该就是这样工作的 Go的设计目的是能够从.a文件编译,而无需通过传递读取其包含文件。Go工具使用源(仅)检查.

我需要编译我的程序-main.go和没有源代码的bigPak包。仅存在bigPak.a tnto GOPATH/pkg


你能给我一个compile main.go with bigPak.a的例子吗?

非常简单:只需在正确的$GOPATH/src位置生成一个假的bigPak包(一个空的
包bigPak
就可以了)和(重要的)确保该合成源在bigPak.a的改性时间之前有一个改性时间。go工具应该就是这样工作的


Go的设计目的是能够从.a文件编译,而无需通过传递读取其包含文件。Go工具使用源(仅)检查.a文件是否需要重新编译(因为源代码较新。

这可能是可能的,但如果是,则必须手动调用链接器和编译器,这将非常困难。相关问题:我在本地尝试了该方法,但确实有效。请确保.a来自正确的编译器版本,且路径正常。(并且:显示错误消息和详细的设置会使调试更容易。)也许我不理解你的意思…我有bigPak.a我应该怎么做才能让我的程序main.go编译?请给我一个很好的例子!假设bigPak.a是包some/big/code的目标文件,你的主程序导入“some/big/code”位于$GOPATH/src/me/myprog中。您使用的是64位linux和bigPak。Go编译器已为此平台编译了a(不是C代码!)并声明自己为
包sbc
.tbc…您忘记了
触摸
假源代码。您所做的让go工具认为它必须重新编译src/book/bigPak/bigPak.go,然后getData就丢失了。@user2614682,否。