「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 /* "<": word-begin, ">": 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(&gOnigMutex)! #define THREAD_ATOMIC_END LeaveCriticalSection(&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 /* "<": word-begin, ">": 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(&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(&gOnigMutex); //これ追?
return 0;
}
</pre>
<br>
<h3>ライブラリをビルドする</h3>
<ol>
<li>
プロンプトを立ち上げて、%VS2005DIR%VCcvarsall.batを実行し環境変数を設定する。</li>
<li>oniguruma を展開したディレクトリに移動。</li>
<li>
README.jaの通りに実行する。以下、コマンドライン入力。<br></li>
<li>> copy win32Makefile Makefile</li>
<li>> copy win32config.h config.h</li>
<li>> nmake</li>
<li>ここまでで .lib と .dll が出来上がる。次はテスト。</li>
<li>> copy win32 estc.c testc.c</li>
<li>> 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 /* "\<": word-begin, "\>": 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(&gOnigMutex)
! #define THREAD_ATOMIC_END LeaveCriticalSection(&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 /* "\<": word-begin, "\>": 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; //これ追
表示オプション
横に並べて表示:
変化行の前後のみ表示: