あひるの勉強部屋

つらつらつら~と不定期にカキコするブログ

mikutterメモ20210921

参考にしたサイトと履歴を誤って飛ばしたので、見つけ次第追記する。。。

問題

gtk2 をgemでインストールする際に下記エラーが発生した。(抜粋)

rbgdkdisplay.c:450:22: error: implicit declaration of function 'gdk_x11_display_get_startup_notification_id' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    return CSTR2RVAL(gdk_x11_display_get_startup_notification_id(_SELF(self)));

環境

名称 バージョン
OS macOS 11.6
CPU Intel Core i9
mikutter コミットハッシュ: 3a36070a

対応

とりあえずビルドを成功させたいため implicit-function-declaration をフラグで無視することにした。

gemコマンドによる確認

下記コマンドを実行して、ビルドが通ることを確認した。

gem install gtk2 -v '3.4.3' --source 'https://rubygems.org/' -- --with-cflags="-Wno-error=implicit-function-declaration"

bundlerによる確認

gemでのビルドを確認できたので、bundlerについても下記コマンドを実行して確認した。

bundle config --local build.gtk2 --with-cflags=\"-Wno-error=implicit-function-declaration\"

これによりプロジェクトディレクトリの .bundle/config ファイルに下記設定が追記された。

diff --git a/config b/config
index 2369228..445a81b 100644
--- a/config
+++ b/config
@@ -1,2 +1,3 @@
 ---
 BUNDLE_PATH: "vendor/bundle"
+BUNDLE_BUILD__GTK2: "--with-cflags=\"-Wno-error=implicit-function-declaration\""