1

C プログラムで REGEX チェックを行うために SLRE ( http://slre.sourceforge.net/ ) を使用しています。ヘッダーファイルを含めて、次のことを行います。

void checkRegex() {
    struct slre slre;
    struct cap captures[4+1];

    if(!slre_compile(&slre, "regularexpression") {
        printf("error");
    }
}

私はそのコマンドでコンパイルを行っています:gcc example1.c -o test.cgi -L. -lconfigそして、そのエラーが発生します:example1.c:(.text+0x1af3): undefined reference to 'slre_compile'

私が間違っていることはありますか?

4

2 に答える 2

3

ライブラリを調べたところ、slre.c と slre.h で構成されているので、おそらく次のようにコンパイルします。

gcc slre.c -o slre.o -c
gcc example1.c slre.o -o test.cgi -L -lconfig
于 2013-04-20T09:46:56.373 に答える
0

ヘッダー ファイルインクルードし、プログラムにslre.cをインクルードする必要があります。SLRE は「ヘッダーのみ」のライブラリではありません。


編集:回答でそのコンパイル行を見ただけです。このワンライナーを使用できます:

gcc example1.c slre.c -o test.cgi -L. -lconfig

ただし、これは毎回 SLRE を (再) コンパイルします。コンパイル時間を節約するには、エイドリアンの回答の行を使用して、コンパイル済みの SLRE をキャッシュする必要があります。

于 2013-04-20T09:43:50.287 に答える