【发布时间】:2016-02-23 20:22:46
【问题描述】:
假设我有一个 golang 包,其中包含一些汇编代码:
demopkg/
source1.go
source2.go
asm_amd64.s
如果我尝试使用go build 构建它,工具链将使用go tool asm 组装*.s 文件。
但如果我将 Cgo 添加到混合物中,通过将单个 import "C" 放入任何源中,go 将切换到 gcc 汇编器。
我可以通过执行go build -n 看到它。从第一个案例中对/usr/local/go/pkg/tool/linux_amd64/asm 的调用被对gcc 的调用所取代。除此之外,它还开始抱怨语法错误。
是否记录了这种行为,以便我可以依靠它来维护我的包?我可以强制go build 使用一个精确的汇编器吗?
【问题讨论】:
标签: gcc assembly go package cgo