#go #delve
#Вперед #углубиться
Вопрос:
Я отправил ошибку для этого на сайт delve. Итак, чтобы объяснить, что происходит. У меня есть 2 файла в одном пакете, main.go и common.go. В main.go он использует некоторую структуру из common.go и когда я запускаю
dlv debug --listen=:2345 --headless --api-version=2 --log main.go
он завершается с ошибкой ‘undefined: NewSimpleStruct’, и я не уверен, что я делаю неправильно.
Вот что содержат файлы Go,
//main.go
package main
import (
"fmt"
)
func main() {
fmt.Println("HELLO WORLD!")
segasaturn := NewSimpleStruct("SS", 69)
segasaturn.WhoAmI()
fmt.Println("BYE WORLD!")
}
//common.go
package main
import "fmt"
type simpleStruct struct {
name string
id int
}
func NewSimpleStruct(name string, id int) *simpleStruct {
return amp;simpleStruct{name, id}
}
func (ss *simpleStruct) WhoAmI() {
fmt.Printf("name: %s, id: %dn", ss.name, ss.id)
}
Комментарии:
1. распространенная ошибка: вы также не можете
go build main.go
здесь. Вам нужно выполнитьgo build .
илиgo build main.go common.go
. Аналогично, просто поместите все файлы или точку (.) вместо main.go, чтобы включить все файлы .go в каталог2. Ах, глупый я … теперь я понимаю. @MuhamedKeta ваш ответ более полный, можете ли вы опубликовать ответ с тем же содержанием?
Ответ №1:
Вы не указали второй исходный файл common.go
по имени.
Так что попробуйте:
dlv debug --listen=:2345 --headless --api-version=2 --log main.go common.go
Комментарии:
1. Да, это правда. Спасибо, что нашли время для ответа. Однако ответ @MuhamedKeta более полный
Ответ №2:
Распространенная ошибка, и это не ошибка delve; обратите внимание, что вы также не можете go build main.go
здесь.
Вам нужно выполнить go build .
или go build main.go common.go
.
Аналогично, просто поместите все файлы или точку (.) вместо main.go, чтобы включить все файлы .go в каталог
dlv debug --listen=:2345 --headless --api-version=2 --log .