0

私はcurlでかなり新しいです。ssl サポートを使用して C++ で curl を使用する必要があります。OpenSSL を nmake でコンパイルしてから、libcurl を VS10 プロジェクト経由で SLL SUPPORT を使用してスタティック ライブラリとしてコンパイルしました。コンパイルはうまくいき、小さなコンソール アプリケーションの例を作成しようとしました。

しかし、これらの特定のプロパティを使用して MFC プロジェクトを作成しようとすると、MFC をダイアログ ボックスとして、Unicode を使用せず、静的ライブラリで MFC を使用します。それは機能せず、次の未解決のシンボルエラーが発生しました:

libcurl.lib(mprintf.obj) : error LNK2001: symbole externe non résolu __imp__fputc
1>libcurl.lib(tftp.obj) : error LNK2001: symbole externe non résolu __imp__memchr
1>libcurl.lib(http.obj) : error LNK2001: symbole externe non résolu __imp__memchr
1>libcurl.lib(userauth.obj) : error LNK2001: symbole externe non résolu __imp__memchr
1>libcurl.lib(file.obj) : error LNK2001: symbole externe non résolu __imp___fstat64
1>libcurl.lib(formdata.obj) : error LNK2001: symbole externe non résolu __imp___stat64
1>libcurl.lib(session.obj) : error LNK2001: symbole externe non résolu __imp___difftime64
1>libcurl.lib(kex.obj) : error LNK2001: symbole externe non résolu __imp___snprintf
1>libcurl.lib(knownhost.obj) : error LNK2001: symbole externe non résolu __imp___snprintf
1>libcurl.lib(scp.obj) : error LNK2001: symbole externe non résolu __imp___snprintf
1>libcurl.lib(misc.obj) : error LNK2001: symbole externe non résolu __imp___snprintf
1>libcurl.lib(transport.obj) : error LNK2001: symbole externe non résolu _imp___snprintf
1>libcurl.lib(channel.obj) : error LNK2001: symbole externe non résolu __imp___wassert
1>libcurl.lib(sftp.obj) : error LNK2001: symbole externe non résolu __imp___wassert
1>libcurl.lib(transport.obj) : error LNK2001: symbole externe non résolu __imp___wassert
1>libcurl.lib(userauth.obj) : error LNK2001: symbole externe non résolu __imp__rewind
1>libcurl.lib(misc.obj) : error LNK2001: symbole externe non résolu __imp__vsnprintf

前もって感謝します。

4

1 に答える 1

0

デフォルトでは、curl は/MD(dll) ランタイム ライブラリを使用してコンパイルします (その__imp__ため、未解決の外部へのプレフィックスを取得します)。

/MT(静的にリンクされたランタイム)を使用して MFC プロジェクトをビルドすると仮定します。

次のようRTLIBCFGに、ビルド コンソールの環境変数を に設定することで、静的ランタイムで curl をビルドできます。static

set RTLIBCFG=static

または、最初の提案が機能しない場合に備えて/MT、コンパイラ フラグとmakefile のリンク フラグに手動で追加します。/NODEFAULTLIB:MSVCRT.lib

于 2014-04-02T07:43:41.707 に答える