「oniguruma のインストール」の編集履歴(バックアップ)一覧はこちら

oniguruma のインストール」(2006/01/13 (金) 01:04:20) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

C言語用正規表現ライブラリ oniguruma を Visual C++ 2005Express Editionでビルド&インスコする方法を説明します。<br> <h3>oniguruma のソースを取得</h3> <ul> <li><a href="http://www.geocities.jp/kosako3/oniguruma/">oniguruma</a></li> </ul> 上記サイトより、Latest release versionをダウンロードして展開する。<br> ちなみにオレは V3.9.1 をダウンロードしました。<br> <br> <h3>oniguruma をスレッドセーフになるように設定する</h3> <a href="http://www.void.in/wiki/OnigPP">やる気向上作戦: OnigPP</a>を参考にしつつ以下のように設定する。<br> <h4>regint.h</h4> <pre> *** regint.h Thu Jan 12 23:59:32 2006<br> --- regint.h.orig Thu Jan 12 23:47:07 2006<br> ***************<br> *** 84,99 ****<br> #define USE_VARIABLE_META_CHARS<br> #define USE_WORD_BEGIN_END /* "&lt;": word-begin, "&gt;": word-end */<br> #define USE_POSIX_REGION_OPTION /* needed for POSIX API support */<br> ! // オレ様変更<br> ! // マルチスレッド対応化<br> ! // 詳しくは doc/FAQ.ja をご覧あれ<br> ! #include ! #define USE_MULTI_THREAD_SYSTEM! extern CRITICAL_SECTION gOnigMutex;! #define THREAD_ATOMIC_START EnterCriticalSection(&amp;gOnigMutex)! #define THREAD_ATOMIC_END LeaveCriticalSection(&amp;gOnigMutex)! #define THREAD_PASS Sleep(0)! // /オレ様変更 #define CHECK_INTERRUPT /* depend on application */ #define xmalloc malloc #define xrealloc realloc--- 84,93 ---- #define USE_VARIABLE_META_CHARS #define USE_WORD_BEGIN_END /* "&lt;": word-begin, "&gt;": word-end */ #define USE_POSIX_REGION_OPTION /* needed for POSIX API support */! /* #define USE_MULTI_THREAD_SYSTEM */! #define THREAD_ATOMIC_START /* depend on thread system */! #define THREAD_ATOMIC_END /* depend on thread system */! #define THREAD_PASS /* depend on thread system */ #define CHECK_INTERRUPT /* depend on application */ #define xmalloc malloc #define xrealloc realloc </pre> <h4>regcomp.c</h4> <pre> *** regcomp.c Thu Jan 12 23:50:48 2006 --- regcomp.c.orig Mon Nov 21 21:16:36 2005 *************** *** 29,36 **** #include "regparse.h" - CRITICAL_SECTION gOnigMutex; //これ追? - OnigAmbigType OnigDefaultAmbigFlag = (ONIGENC_AMBIGUOUS_MATCH_ASCII_CASE | ONIGENC_AMBIGUOUS_MATCH_NONASCII_CASE); --- 29,34 ---- *************** *** 4936,4942 **** return 0; onig_inited = 1; ! InitializeCriticalSection(&amp;gOnigMutex); //これ追? THREAD_ATOMIC_START; onigenc_init(); --- 4934,4940 ---- return 0; onig_inited = 1; ! THREAD_ATOMIC_START; onigenc_init(); *************** *** 4973,4979 **** onig_inited = 0; THREAD_ATOMIC_END; - DeleteCriticalSection(&amp;gOnigMutex); //これ追? return 0; } </pre> <br> <h3>ライブラリをビルドする</h3> <ol> <li> プロンプトを立ち上げて、%VS2005DIR%VCcvarsall.batを実行し環境変数を設定する。</li> <li>oniguruma を展開したディレクトリに移動。</li> <li> README.jaの通りに実行する。以下、コマンドライン入力。<br></li> <li>&gt; copy win32Makefile Makefile</li> <li>&gt; copy win32config.h config.h</li> <li>&gt; nmake</li> <li>ここまでで .lib と .dll が出来上がる。次はテスト。</li> <li>&gt; copy win32 estc.c testc.c</li> <li>&gt; name ctest</li> </ol> <br> <h3>ライブラリやらヘッダをインスコする</h3> <ol> <li>*.lib を %LIB_PATH% の通ったフォルダにコピー</li> <li>*.dll を %PATH% の通ったフォルダにコピー</li> <li>oniguruma.h を %INCLUDE_PATH% の通ったフォルダにコピー</li> </ol> 以上で終了なり。<br>
C言語用正規表現ライブラリ oniguruma を Visual C++ 2005ExpressEditionでビルド&インスコする方法を説明します。<br> <br> <h3>oniguruma のソースを取得</h3> <ul> <li><a href="http://www.geocities.jp/kosako3/oniguruma/">oniguruma</a></li> </ul> 上記サイトより、Latest releaseversionをダウンロードして展開する。<br> ちなみにオレは V3.9.1 をダウンロードしました。<br> <br> <h3>oniguruma をスレッドセーフになるように設定する</h3> <a href= "http://www.void.in/wiki/OnigPP">やる気向上作戦:OnigPP</a>を参考にしつつ以下のように設定する。<br> <h4>regint.h</h4> <pre> $ diff -c regint.h regint.h.orig *** regint.h Thu Jan 12 23:59:32 2006 --- regint.h.orig Thu Jan 12 23:47:07 2006 *************** *** 84,99 **** #define USE_VARIABLE_META_CHARS #define USE_WORD_BEGIN_END /* "\&lt;": word-begin, "\&gt;": word-end */ #define USE_POSIX_REGION_OPTION /* needed for POSIX API support */ ! // オレ様変更 ! // マルチスレッド対応化 ! // 詳しくは doc/FAQ.ja をご覧あれ ! #include ! #define USE_MULTI_THREAD_SYSTEM ! extern CRITICAL_SECTION gOnigMutex; ! #define THREAD_ATOMIC_START EnterCriticalSection(&amp;gOnigMutex) ! #define THREAD_ATOMIC_END LeaveCriticalSection(&amp;gOnigMutex) ! #define THREAD_PASS Sleep(0) ! // /オレ様変更 #define CHECK_INTERRUPT /* depend on application */ #define xmalloc malloc #define xrealloc realloc --- 84,93 ---- #define USE_VARIABLE_META_CHARS #define USE_WORD_BEGIN_END /* "\&lt;": word-begin, "\&gt;": word-end */ #define USE_POSIX_REGION_OPTION /* needed for POSIX API support */ ! /* #define USE_MULTI_THREAD_SYSTEM */ ! #define THREAD_ATOMIC_START /* depend on thread system */ ! #define THREAD_ATOMIC_END /* depend on thread system */ ! #define THREAD_PASS /* depend on thread system */ #define CHECK_INTERRUPT /* depend on application */ #define xmalloc malloc #define xrealloc realloc </pre> <h4>regcomp.c</h4> <pre> $ diff -c regcomp.c regcomp.c.orig *** regcomp.c Thu Jan 12 23:50:48 2006 --- regcomp.c.orig Mon Nov 21 21:16:36 2005 *************** *** 29,36 **** #include "regparse.h" - CRITICAL_SECTION gOnigMutex; //これ追

表示オプション

横に並べて表示:
変化行の前後のみ表示:
人気記事ランキング
目安箱バナー