文系忘備録

どこにでもいる文系大学生の忘備録です

MENU

go言語のgo.modのgo buildで起こるgccのエラーとか

go.modいっつもつまづくので忘備録残します。
まずディレクトリに移動してinitします(↓)

E:\Go>mkdir modtest
E:\Go>cd modtest
E:\Go\modtest>go mod init test/modtest
go: creating new go.mod: module test/modtest

ここでgoファイルを作ります。
下のプログラムではFyneというライブラリを読み込んでます。
test.go

package main

import (
    "fyne.io/fyne/app"
    "fyne.io/fyne/widget"
)

func main() {
    app := app.New()

    window := app.NewWindow("First Fyne")
    window.SetContent(widget.NewVBox(
        widget.NewLabel("Hello_world"),
    ))

    window.ShowAndRun()
}

これではまだ読み込めてないのでgo buildします
っていってたらエラーでました。

 function main is undeclared in the main package

どゆこと?
ですがgo.modには読み込まれているみたいです。

f:id:dntf:20210620184810p:plain
vscodeでの画面

vscodeだと1行目上部に Create vendor directory というのがあったのでこれを押してみるとエラーがなくなりました。

ってことでもう一度 go build を実行してみます。

 running gcc failed: exit status 1

色々調べてみたところ、cygwingccを使っていることが原因かもしれないということで、mingwgccをインストールしました。
go.modの中身を test/modtest から test/mods に変えたら無事ビルド出来ました。
f:id:dntf:20210620203246p:plain
同じフォルダ名であったことが問題だったのかもしれません。

終わり。じゃーね