C言語

Autoconfを使ってライブラリのバージョンで条件付きコンパイルする

libgimpのバージョンが2.7以降かどうかでコンパイルする内容を変更する方法を調べた。 Autoconfとpkg-configを使う。 configure.acに追加: PKG_CHECK_EXISTS([gimp-2.0 >= 2.7.0], [AC_DEFINE(GIMP_2.7_OR_LATER)])ソースコードの変更 #ifdef GIMP_2.7_OR_LA…

GlibのGRegexをglibcのregex.hで置き換える

X11 Mouse Cursor plug-in for GIMP 2.0.5とGIMP 2.4 用のX11 Mouse Cursor plug-in for GIMP 1.1.5をリリースした。細かいバグを潰している。GIMP 2.4 ではGLibの最小バージョンは2.12だがGRegexはGLib-2.14以降でのみ利用できるので、1.1.5に関してはGRege…

警告: 不明なエスケープシーケンス '\d'

表題はLANG=Cなら「warning: unknown escape sequence '\d'」。 GRegex(GLibの正規表現)の一般キャラクタタイプ(整数を表す「\d」など)が使えなくて悩んでいた。 #include <glib.h> int main(int argc, char *argv[]) { GRegex *reg; GError *error = NULL; reg = </glib.h>…

Consider adjusting the PKG_CONFIG_PATH environment variable

Fedora 9 ではレポジトリに収録されているGIMPがバージョン2.4系なので、最新の2.6系を「--prefix=/opt」以下にインストールした。関連記事:GIMP 2.6のFedora 9 へのインストール他 この結果2.6以降のGIMP向けのプラグインをビルドするとき、「./configure…

xcur2png 0.6.2をリリース

xcur2png 0.6.2をリリースした。さらにコードを整理して少し読みやすくなったはず。また「-c」オプションにディレクトリを再度指定できるようにした。 次回は進捗を表示するようにし、「-q」|「--quiet」オプションを付ける予定。

/usr/include/lcms.h:1370: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’

前回の続き。 依存関係が解決出来たのでさっそく開発版GIMPのビルドに取りかかった。 $ []./configure --enable-debug --enable-profile --enable-ansi --prefix=/opt[] []...省略...[] $ []make[] []...省略...[] []In file included from jpeg-load.c:35:[…

libpngのpng_write_end()でSegmentation fault

libpngを使って、png画像を出力するプログラムを書いたのだが、いざ実行するとpng_write_end()関数を呼び出したところで、Segmentation faultを起こしてしまう。 test.c: #include <stdio.h> #include <stdlib.h> #include <png.h> #define PNG_SETJMP_NOT_SUPPORTED 1 int main() { F</png.h></stdlib.h></stdio.h>…