1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

goplsでnet/http系のパッケージを入れると動かなくなるバグ(Mac)

Posted at

goplsで快適にプログラムを書いていたんですが、net/http系のライブラリを使うと何故か補完等の全機能が使えなくなるというバグに見舞われて、かなり苦労したのでもし他にもそういう方がいたときのために解決方法等を載せておきます。

どのようなバグか

僕はgolangでweb系のプログラムを書いていたので、gin-gonic/ginのようなライブラリを使っていたのですが、そのライブラリをimportするとgoplsが動かなくなるというバグでした。

原因

様々な場所でログを出力してデバッグしていたところ。
$GOPATH/src/golang.org/x/tools/go/packages/packages.goLoadという関数でエラーが起きていたようでした。

exit status 2: # runtime/cgo","_cgo_export.c:3:10: fatal error: 'stdlib.h' file not found

というエラー文が出てきました。
goplsはcgoを使っているらしくC系の動作がちゃんとしていないと動かないようです。
このエラーについてググるとMacOSのアップデート時にxcodeがstdlib.hを見失ってしまう?ことがあるらしいです。

もし、これと同じエラーかどうかを試したければ、stdlib.hをimportしたC++の簡単なプログラムを書いて、ちゃんと動くかを試してみるといいと思います。

解決方法

僕の場合は以下のようにして、pkgをインストールしたら治りました。

$ open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

参考: https://stackoverflow.com/questions/51761599/cannot-find-stdio-h

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?