Нельзя использовать nil как тип _Ctype_CFAllocatorRef в аргументе для литерала func - PullRequest
0 голосов
/ 06 января 2019

Я запускаю команду ниже, чтобы установить пакет для модульных тестов, написанных на go for Solidity.

go install ./cmd/abigen

Но я получаю эти ошибки:

# github.com/ethereum/go-ethereum/vendor/github.com/rjeczalik/notify
vendor/github.com/rjeczalik/notify/watcher_fsevents_cgo.go:51:216: cannot use nil as type _Ctype_CFAllocatorRef in argument to func literal
vendor/github.com/rjeczalik/notify/watcher_fsevents_cgo.go:165:47: cannot use nil as type _Ctype_CFAllocatorRef in argument to _Cfunc_CFStringCreateWithCStringNoCopy
vendor/github.com/rjeczalik/notify/watcher_fsevents_cgo.go:166:225: cannot use nil as type _Ctype_CFAllocatorRef in argument to func literal

Go версия: go версия go1.11.4 darwin / amd64

1 Ответ

0 голосов
/ 06 марта 2019

У меня тоже была эта проблема. Для меня проблемой была версия Geth vs Go, которую я использовал. Вероятно, вам нужно обновить geth до текущей версии или хотя бы до версии geth v1.8.16

https://github.com/ethereum/go-ethereum/issues/17751

Это не было для меня вариантом, поэтому я нашел второе решение. В этих строках кода вы увидите nils, вам не нужно переключать их все, но если вы переключите те, которые указаны в C.kCFAllocatorDefault, это должно сработать. Пример фактической замены приведен ниже.

51

var source = C.CFRunLoopSourceCreate(C.kCFAllocatorDefault, 0, &C.CFRunLoopSourceContext{
    perform: (C.CFRunLoopPerformCallBack)(C.gosource),
})

165

p := C.CFStringCreateWithCStringNoCopy(C.kCFAllocatorDefault, C.CString(s.path), C.kCFStringEncodingUTF8, C.kCFAllocatorDefault)

166

path := C.CFArrayCreate(C.kCFAllocatorDefault, (*unsafe.Pointer)(unsafe.Pointer(&p)), 1, nil)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...