gpt4 book ai didi

c - 尝试扩展 golang Pigpio 包装函数 gpioWaveAddGeneric

转载 作者:行者123 更新时间:2023-11-30 16:12:13 28 4
gpt4 key购买 nike

美好的一天,

我试图扩展这个 library在 GitHub 上,但它不起作用,我收到了这个错误。 pigpio.go:319:48:未定义:脉冲

这是函数:

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
}

我希望有人能帮助我。非常感谢!

最佳答案

我不知道你使用动词“extend”是什么意思,但如果您只是尝试在自己的代码中使用该库,代码中出现不合格的类型名称 Pulse 看起来非常可疑:要使用包,首先导入它,然后使用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 表明它实际上生来就有这个限制;这可能表明作者认为该文件不完整和/或不适合使用。)

关于c - 尝试扩展 golang Pigpio 包装函数 gpioWaveAddGeneric,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58391519/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com