0

Cで.expファイルをリンクするには?

.so、.o、.a、.la、lo、.sloファイルをリンクできます。
しかし、.expファイルのみ(No .so、.o、.a、.la、lo、.sloファイル)のファイルhttpd.hがあり、そこから関数を使用する必要があります。
そして、未定義のシンボルエラーが発生しています。Ubuntu、Cで.expファイルをリンクするには?

undefined symbol: ap_cstr_casecmp

+0

コンパイラまたはローダコマンドラインに '-lapr-1'を追加してみてください。 –

+0

同じエラーですが、httpd.hはaprでもapr-utilでもなくapache2自身であり、httpd.hの他の機能は実際にうまくいきます。 –

答えて

2

.EXPファイルだけがエクスポートシンボルのリストが含まれています。リンクする必要はありません。リンクするにはライブラリが必要です。

+0

この 'ap_cstr_casecmp'関数はhttpd.hにありますが、私は '未定義シンボル:ap_cstr_casecmp'を取得しています。このエラーを取り除くには、どうすれば正しくリンクされますか? –

2

.exp is used on Windows onlyであり、Ubuntuでは使用できません。 Ubuntuにリンクするには.soまたは.aファイルが必要です。

あなたは(<name>は、ライブラリの名前ですlib<name>.soまたはlib<name>.aまたは類似の)ライブラリファイルを見つける必要があり、その後<path>は、ライブラリファイルを含むディレクトリへのパスに置き換える必要があり-L<path> -l<name>にリンクします。 <path>/usr/libの場合、-L<path>は省略できます。

+0

この 'ap_cstr_casecmp'関数はhttpd.hにありますが、' undefined symbol:ap_cstr_casecmp'を取得しています。このエラーを取り除くには、どうすれば正しくリンクされますか? Ubuntuのlibディレクトリhttpd.expにファイルがありますので、その使い方は何ですか? –

+0

更新された回答を参照してください。 – Rufflewind

+0

このようなファイルはありませんが、同じヘッダーファイルの他の関数は正常に動作していますが、これは正しくありません。 –

関連する問題