go言語でembedを使用してビルドされたものが16bitアプリケーションと認識されてしまいます。
実行時に以下のウィンドウが現れます。
また、作成されたexeファイルのサイズも小さく、embedを使わないただのheelo,worldのexeファイルが2,000KB程度に対して、以下に掲載したembedを使用したexeファイルは130KBと非常に小さく明らかにビルドがうまくいっていないことがうかがえます。
embedを使用する場合、ソースへの記述以外でたとえば特別なビルドオプションが必要なのでしょうか。
解決方法や思い当たることがありましたらご返答いただけると助かります。
よろしくお願いいたします。
追記:
スタックオーバーフローに似たものがありました。
私には関連性を見つけることはできませんでしたが、お気づきの点があれば教えていただけると助かります。
https://stackoverflow.com/questions/26951762/i-cant-run-go-programs-anymore
開発環境
- OS : Windows 10 Pro
- go version
go version go1.19 windows/amd64 - gcc --version
gcc (x86_64-posix-sjlj-rev0, Built by MinGW-W64 project) 8.1.0
発生している問題・エラーメッセージ
This version of R:\Source\Go\bin\Embed - json.exe is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.
該当のソースコード
- ファイルの配置
tree
1├───Embed 2│ │ go.mod 3│ │ main.go 4│ │ 5│ └───resource 6│ hello.md 7│ hello.txt
- hello.txt、hello.mdの内容は同じです。
Text
1Hello Go!!
- main.go
go
1package main 2 3import ( 4 _ "embed" 5 "fmt" 6 "io/fs" 7) 8 9var ( 10 //go:embed resource/* 11 var fs embed.FS 12) 13 14func main() { 15 b, err := fs.ReadFile("hello.txt") 16 if err != nil { 17 panic(err) 18 } 19 fmt.Printf("%s\n", string(b)) 20 21 b2, err := fs.ReadFile(fs, "hello.md") 22 if err != nil { 23 panic(err) 24 } 25 fmt.Printf("version: %s\n", string(b2)) 26}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/30 00:22
2022/08/30 03:55
2022/08/30 09:35 編集
2022/08/30 09:40