Ошибка error: converting to execution character set: Illegal byte sequence при запуске приложения fyne
Я установил fyne выполнив эти команды:
go get fyne.io/fyne/v2@latest
go install fyne.io/fyne/v2/cmd/fyne@latest
Всё отлично установилось.
При запуске этого простого приложения:
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
w := a.NewWindow("Hello World")
w.SetContent(widget.NewLabel("Hello World!"))
w.ShowAndRun()
}
командой go run . вывелась эта ошибка:
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\driver\glfw\driver_desktop.go:18:2: missing go.sum entry for module providing package fyne.io/systray (imported by fyne.io/fyne/v2/internal/driver/glfw); to add:
go get fyne.io/fyne/v2/internal/driver/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\storage\repository\parse.go:9:2: missing go.sum entry for module providing package github.com/fredbi/uri (imported by fyne.io/fyne/v2/storage/repository); to add:
go get fyne.io/fyne/v2/storage/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\app\settings_desktop.go:11:2: missing go.sum entry for module providing package github.com/fsnotify/fsnotify (imported by fyne.io/fyne/v2/app); to add:
go get fyne.io/fyne/v2/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\driver\glfw\driver.go:12:2: missing go.sum entry for module providing package github.com/fyne-io/image/ico (imported by fyne.io/fyne/v2/internal/driver/glfw); to add:
go get fyne.io/fyne/v2/internal/driver/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\painter\gl\gl_core.go:9:2: missing go.sum entry for module providing package github.com/go-gl/gl/v2.1/gl (imported by fyne.io/fyne/v2/internal/painter/gl); to add:
go get fyne.io/fyne/v2/internal/painter/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\driver\glfw\clipboard.go:12:2: missing go.sum entry for module providing package github.com/go-gl/glfw/v3.3/glfw (imported by fyne.io/fyne/v2/internal/driver/glfw); to add:
go get fyne.io/fyne/v2/internal/driver/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\painter\font.go:11:2: missing go.sum entry for module providing package github.com/go-text/render (imported by fyne.io/fyne/v2/internal/painter); to add:
go get fyne.io/fyne/v2/internal/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\painter\font.go:12:2: missing go.sum entry for module providing package github.com/go-text/typesetting/di (imported by fyne.io/fyne/v2/widget); to add:
go get fyne.io/fyne/v2/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\painter\font.go:13:2: missing go.sum entry for module providing package github.com/go-text/typesetting/font (imported by fyne.io/fyne/v2/internal/painter); to add:
go get fyne.io/fyne/v2/internal/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\painter\font.go:14:2: missing go.sum entry for module providing package github.com/go-text/typesetting/shaping (imported by fyne.io/fyne/v2/widget); to add:
go get fyne.io/fyne/v2/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\svg\svg.go:16:2: missing go.sum entry for module providing package github.com/srwiley/oksvg (imported by fyne.io/fyne/v2/internal/svg); to add:
go get fyne.io/fyne/v2/internal/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\svg\svg.go:17:2: missing go.sum entry for module providing package github.com/srwiley/rasterx (imported by fyne.io/fyne/v2/internal/painter); to add:
go get fyne.io/fyne/v2/internal/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\widget\markdown.go:8:2: missing go.sum entry for module providing package github.com/yuin/goldmark (imported by fyne.io/fyne/v2/widget); to add:
go get fyne.io/fyne/v2/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\widget\markdown.go:9:2: missing go.sum entry for module providing package github.com/yuin/goldmark/ast (imported by fyne.io/fyne/v2/widget); to add:
go get fyne.io/fyne/v2/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\widget\markdown.go:10:2: missing go.sum entry for module providing package github.com/yuin/goldmark/renderer (imported by fyne.io/fyne/v2/widget); to add:
go get fyne.io/fyne/v2/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\painter\image.go:8:2: missing go.sum entry for module providing package golang.org/x/image/draw (imported by fyne.io/fyne/v2/internal/painter); to add:
go get fyne.io/fyne/v2/internal/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\painter\draw.go:10:2: missing go.sum entry for module providing package golang.org/x/image/math/fixed (imported by fyne.io/fyne/v2/widget); to add:
go get fyne.io/fyne/v2/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\app\app_windows.go:14:2: missing go.sum entry for module providing package golang.org/x/sys/execabs (imported by fyne.io/fyne/v2/app); to add:
go get fyne.io/fyne/v2/[email protected]
C:\Users\Николай\go\pkg\mod\fyne.io\fyne\[email protected]\internal\driver\glfw\window_windows.go:11:2: missing go.sum entry for module providing package golang.org/x/sys/windows/registry (imported by fyne.io/fyne/v2/app); to add:
go get fyne.io/fyne/v2/[email protected]
Это исправилось выполнением команды (как и сказано в сообщении об ошибке):
go get fyne.io/fyne/v2/[email protected]
Но при запуске этого приложения повторно вывелась эта ошибка, которую я ни как не могу решить:
# github.com/go-gl/glfw/v3.3/glfw
In file included from C:\Users\Николай\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]\c_glfw.go:4:
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/context.c: In function 'glfwSwapBuffers':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/context.c:644:1: error: converting to execution character set: Illegal byte sequence
644 | assert(window != NULL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/context.c: In function 'glfwExtensionSupported':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/context.c:678:1: error: converting to execution character set: Illegal byte sequence
678 | assert(extension != NULL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/context.c: In function 'glfwGetProcAddress':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/context.c:744:1: error: converting to execution character set: Illegal byte sequence
744 | assert(procname != NULL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Николай\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]\c_glfw.go:6:
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/input.c: In function 'glfwGetInputMode':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/input.c:492:1: error: converting to execution character set: Illegal byte sequence
492 | assert(window != NULL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~
...
<Здесь что-то такое же.>
...
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/window.c: In function 'glfwSetWindowContentScaleCallback':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/window.c:1061:1: error: converting to execution character set: Illegal byte sequence
1061 | assert(window != NULL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/window.c: In function 'glfwWaitEventsTimeout':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/window.c:1083:1: error: converting to execution character set: Illegal byte sequence
1083 | assert(timeout == timeout);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/window.c:1084:1: error: converting to execution character set: Illegal byte sequence
1084 | assert(timeout >= 0.0);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/window.c:1085:1: error: converting to execution character set: Illegal byte sequence
1085 | assert(timeout <= DBL_MAX);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Николай\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]\c_glfw.go:10:
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c: In function '_glfwCreateContextOSMesa':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:224:1: error: converting to execution character set: Illegal byte sequence
224 | setAttrib(OSMESA_FORMAT, OSMESA_RGBA);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:225:1: error: converting to execution character set: Illegal byte sequence
225 | setAttrib(OSMESA_DEPTH_BITS, fbconfig->depthBits);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:226:1: error: converting to execution character set: Illegal byte sequence
226 | setAttrib(OSMESA_STENCIL_BITS, fbconfig->stencilBits);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:227:1: error: converting to execution character set: Illegal byte sequence
227 | setAttrib(OSMESA_ACCUM_BITS, accumBits);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:231:1: error: converting to execution character set: Illegal byte sequence
231 | setAttrib(OSMESA_PROFILE, OSMESA_CORE_PROFILE);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:235:1: error: converting to execution character set: Illegal byte sequence
235 | setAttrib(OSMESA_PROFILE, OSMESA_COMPAT_PROFILE);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:240:1: error: converting to execution character set: Illegal byte sequence
240 | setAttrib(OSMESA_CONTEXT_MAJOR_VERSION, ctxconfig->major);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:241:1: error: converting to execution character set: Illegal byte sequence
241 | setAttrib(OSMESA_CONTEXT_MINOR_VERSION, ctxconfig->minor);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:251:1: error: converting to execution character set: Illegal byte sequence
251 | setAttrib(0, 0);
| ^ ~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c: In function 'glfwGetOSMesaColorBuffer':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:303:1: error: converting to execution character set: Illegal byte sequence
303 | assert(window != NULL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c: In function 'glfwGetOSMesaDepthBuffer':
C:\Users\�������\go\pkg\mod\github.com\go-gl\glfw\v3.3\[email protected]/glfw/src/osmesa_context.c:342:1: error: converting to execution character set: Illegal byte sequence
342 | assert(window != NULL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~
Притом после этой ошибки программа не прекращает работать и её приходиться завершить нажатием Ctrl + C.
Ответы (1 шт):
Эти ошибки генерирует компилятор Си. Какой версией mingw вы пользуетесь? Посмотрите в hex-редакторе байты, на которые ругается компилятор, может быть при распаковке unzip туда какую отсебятину засунул? Я посмотрел у себя - все символы легальный ASCII, поэтому всё скомпилировалось успешно.
У меня не вышло воспроизвести вашу проблему.
Конфигурация:
- Windows 11
- Go 1.21.5
- Gcc (Rev2, Built by MSYS2 project) 13.2.0 (из пакета
mingw-w64-ucrt-x86_64-gcc)
Я взял вашу программу, fyne устанавливал не по инструкции, а как всегда делаю:
go mod tidy
Эта команда выкачала пакет fyne.io/fyne/v2 и все зависимости.
Затем командой в powershell
$env:CGO_ENABLED=1; go build -v .
собрал исполнимый файл. Эта команда заодно скомпилировала все пакеты (очень долго! компилятор Си минут десять ковыряется не то с gl-gl, не то с fyne/app).
Запустил получившийся экзешник:
- окошко открылось
- Hello World отрисовалось
- по нажатию на крестик окошко закрылось
Никаких сообщений об ошибках.