10 SeattleでPCREライブラリ(regcomp、regfree、regexec等)を利用すると64ビットリンカエラーが発生する

提供: Support
移動先: 案内検索

問題

pcreposi.hヘッダーファイルをインクルードし、regcomp、regfree、regexecといったPCREライブラリを利用したソースコードをbcc64でビルドすると、以下のようなリンカエラーが発生します。

[ilink64 エラー] Error: Unresolved external 'regcomp' referenced from C:\..(中略)..\WIN64\Unit1.O 
[ilink64 エラー] Error: Unresolved external 'regfree' referenced from C:\..(中略)..\WIN64\Unit1.O 
[ilink64 エラー] Error: Unresolved external 'regexec' referenced from C:\..(中略)..\WIN64\Unit1.O

解決

PCREライブラリは、bcc32との互換性のために現バージョンでも付属していますが、C++11を新しくサポートしている10 Seattle以降のbcc64では原則、これらのライブラリはサポートしておりません。


そのため10 Seattle以降では、C++11標準の正規表現関数(std::regex)を利用してください。