curl を libcurl.dll を使用しない static ライブラリとして使う方法
まず、ソースファイルをダウンロードしてきたら解凍して、buildconf.bat をVisual Studio のコマンドプロンプトから実行する
https://curl.se/download/
ここから、zipバージョンをとってきた。
次に、winbuild に移動して
nmake /f Makefile.vc mode=static RTLIBCFG=static vc=9 MACHINE=x86 ENABLE_IDN=no USE_IPV6=no
を実行
ビルドが終わると lib フォルダの下に libcurl_a.lib ができる
対象のプログラムに
builds\libcurl-vc9-x86-release-static-sspi-schannel\include\curl.h を追加して
curl の include の前に #define CURL_STATICLIB を追加する。
#pragma comment(lib,"libcurl_a.lib") を追加する(パスが通ってる事)
1>libcurl_a.lib(schannel.obj) : error LNK2019: 未解決の外部シンボル __imp__CertFreeCertificateContext@4 が関数 _schannel_acquire_credential_handle で参照されました。 1>libcurl_a.lib(schannel_verify.obj) : error LNK2001: 外部シンボル "__imp__CertFreeCertificateContext@4" は未解決です。 1>libcurl_a.lib(schannel.obj) : error LNK2019: 未解決の外部シンボル __imp__PFXImportCertStore@12 が関数 _schannel_acquire_credential_handle で参照されました。 1 |
→ #pragma comment (lib, "crypt32.lib")
1>libcurl_a.lib(asyn-thread.obj) : error LNK2019: 未解決の外部シンボル __imp__closesocket@4 が関数 _destroy_thread_sync_data で参照されました。 1>libcurl_a.lib(connect.obj) : error LNK2001: 外部シンボル "__imp__closesocket@4" は未解決です。 1>libcurl_a.lib(socketpair.obj) : error LNK2001: 外部シンボル "__imp__closesocket@4" は未解決です。 1>libcrypto_static.lib(b_sock2.obj) : error LNK2001: 外部シンボル "__imp__closesocket@4" は未解決です。 1>libcrypto_static.lib(bss_sock.obj) : error LNK2001: 外部シンボル "__imp__send@16" は未解決です。 |
1>libcurl_a.lib(ldap.obj) : error LNK2019: 未解決の外部シンボル __imp__ldap_bind_s が関数 _ldap_win_bind_auth で参照されました。 1>libcurl_a.lib(ldap.obj) : error LNK2019: 未解決の外部シンボル __imp__ldap_simple_bind_s が関数 _ldap_win_bind で参照されました。 1>libcurl_a.lib(ldap.obj) : error LNK2019: 未解決の外部シンボル __imp__ldap_unbind_s が関数 _ldap_do で参照されました。 |
Comments