日安,
我试图在GitHub上扩展这个library,但是它不能工作,我得到了这个错误。pigpio.go:319:48: undefined: Pulse
这是函数:
func gpioWaveAddGeneric(numPulses uint, pulse *Pulse) (err error) {
totalPulses := int(C.gpioWaveAddGeneric(
C.unsigned(numPulses), &pulse[0]))
if totalPulses > 0 {
// totalPulses = the new total number of pulses in the current waveform
// if OK, otherwise PI_TOO_MANY_PULSES$
} else {
// handle erroer err = Errno(totalPulses)
}
return
}我希望有人能帮助我。非常感谢!
发布于 2019-10-15 18:47:13
我不知道您使用动词“扩展”是什么意思,但是如果您只是试图在自己的代码中使用该库,则代码中未限定的类型名称Pulse的外观看起来非常可疑:要使用包,首先使用import它,然后使用packagename.Symbol形式引用它导出的符号。
也就是说,在这种情况下,您应该这样做
import "github.com/go-pigpio/pigpio"
func gpioWaveAddGeneric(numPulses uint, pulse *pigpio.Pulse) (err error) {如果您真的想通过在库中编写自定义代码来扩展该库,那么使用非限定名称是非常明智的,但是可能的预感是所谓的“构建约束”的出现导致了它不起作用。
// +build ignore在包含Go类型定义的文件中键入Pulse (在存储库中搜索"type Pulse“子字符串)。
The documentation明确指出,包含这种约束的文件将被排除在构建之外(即根本不编译),这意味着无论是包本身的代码还是它的客户端都根本看不到符号Pulse。
为什么,这超出了当前讨论的范围;我想问一下包的作者。( blaming that file告诉我们,它实际上生来就有这个限制;它可能表明作者不认为文件是完整的和/或不适合使用。)
https://stackoverflow.com/questions/58391519
复制相似问题