Ошибка 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 шт):

Автор решения: Pak Uula

Эти ошибки генерирует компилятор Си. Какой версией 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 отрисовалось
  • по нажатию на крестик окошко закрылось

Никаких сообщений об ошибках.

→ Ссылка