Visualstudio 19 libcurlバージョン
8581 ワード
libcurl
サーバに接続するため、libcurlをVisual studio 19で使用する必要があります.
visualstudio 19では、バージョン互換性の問題でlibcurlのc++での使用時間が長いため、構築に失敗した.
最終的には成功しましたが、他の人たちは苦労しないように21年11月基準バージョンを書きました.
libcurlを構築する前に、3つのプログラムが必要です.
1. Perl
2. nasm
3. openssl
perl
Opensslを構築するにはperlが必要です.
perlはhttps://strawberryperl.com/リンクから受信される.
64ビットバージョンを受信すればいいです.
nasm
NASMは一部のコンポーネントを使用して暗号化性能を向上させる.
https://www.nasm.us/
nasmを環境変数にダウンロードして追加します.
openssl
Opensslはgithubで安定バージョン1.1.1 lをクローンします.
Opensslを構築するには、管理者権限でvisualstudioコマンドプロンプトを実行します.
x 86は32ビット、x 64は64ビットなので、64ビットで開きます.
クローンディレクトリに入って静的構築構成を行います.
1. x86 static library
perl Configure VC-WIN32 --openssldir=C:\OpenSSL-x86 no-shared no-asm threads no-idea no-mdc2 no-rc5
2. x86 static debug library
perl Configure debug-VC-WIN32 --openssldir=C:\OpenSSL-x86-debug no-shared no-asm threads no-idea no-mdc2 no-rc5
x64 static library
perl Configure VC-WIN64A --openssldir=C:\OpenSSL-x64 no-shared no-asm threads no-idea no-mdc2 no-rc5
x64 static debug library
perl Configure debug-VC-WIN64A --openssldir=C:\OpenSSL-x64-debug no-shared no-asm threads no-idea no-mdc2 no-rc5
※no-idemano-mdc 2 no-rc 5は暗号化アルゴリズムのライセンスの問題でバージョンから除外されています
perl Configure VC-WIN64A --openssldir=C:\OpenSSL-x64 no-shared no-asm threads no-idea no-mdc2 no-rc5
入力後Enter.完了後にnmakeを使用して構築構築が完了したら、nmake testコマンドを使用してテストを実行し、nmake installコマンドを使用してインストールします.
インストールパスがx 64の場合、C:Program FilesOpenSSLにインストールされます.
libcurl
libcurl githubから7.78をクローンします.
https://github.com/curl/curl/tree/curl-7_78_0
Opensslをサポートするlibcurlを作成するには、deps、lib、include、binを次のディレクトリに作成します.
If you wish to support zlib, openssl, c-ares, ssh2, you will have to download them separately and copy them to the deps directory as shown below:
somedirectory\
|_curl-src
| |_winbuild
|
|_deps
|_ lib
|_ include
|_ bin
次に、C:Program FilesOpenSSL位置のbin、include、libのすべてのコンテンツを名前で移動します.Visual studioコマンドは、管理者権限でPromptを実行します.(64ビット)
ディレクトリの場所をcurl/winbuildに移動します.
nmake /f Makefile.vc mode=<static or dll> <option>
where <options> is one or many of:
VC=<num> - VC version. 6 or later.
WITH_DEVEL=<path> - Paths for the development files (SSL, zlib, etc.) Defaults to sibbling directory deps: ../deps Libraries can be fetched at https://windows.php.net/downloads/php-sdk/deps/ Uncompress them into the deps folder.
WITH_SSL=<dll/static> - Enable OpenSSL support, DLL or static
WITH_NGHTTP2=<dll/static> - Enable HTTP/2 support, DLL or static
WITH_MBEDTLS=<dll/static> - Enable mbedTLS support, DLL or static
WITH_CARES=<dll/static> - Enable c-ares support, DLL or static
WITH_ZLIB=<dll/static> - Enable zlib support, DLL or static
WITH_SSH2=<dll/static> - Enable libSSH2 support, DLL or static
WITH_PREFIX=<dir> - Where to install the build
ENABLE_SSPI=<yes/no> - Enable SSPI support, defaults to yes
ENABLE_IPV6=<yes/no> - Enable IPv6, defaults to yes
ENABLE_IDN=<yes or no> - Enable use of Windows IDN APIs, defaults to yes Requires Windows Vista or later
ENABLE_SCHANNEL=<yes/no> - Enable native Windows SSL support, defaults to yes if SSPI and no other SSL library
ENABLE_OPENSSL_AUTO_LOAD_CONFIG=<yes/no> - Enable loading OpenSSL configuration automatically, defaults to yes
ENABLE_UNICODE=<yes/no> - Enable UNICODE support, defaults to no
GEN_PDB=<yes/no> - Generate Program Database (debug symbols for release build)
DEBUG=<yes/no> - Debug builds
MACHINE=<x86/x64> - Target architecture (default is x86)
CARES_PATH=<path> - Custom path for c-ares
MBEDTLS_PATH=<path> - Custom path for mbedTLS
NGHTTP2_PATH=<path> - Custom path for nghttp2
SSH2_PATH=<path> - Custom path for libSSH2
SSL_PATH=<path> - Custom path for OpenSSL
ZLIB_PATH=<path> - Custom path for zlib
nmake/f Makefile.vc mode=static VC=17 WITH_DEVEL=../deps MACHINE=x64 WITH_PREFIX=builds上記のコマンドには、静的ライブラリ、VC 17バージョン、depsディレクトリのopensslサポート、64ビットマシン、格納場所winbuild/buildsが含まれます.
Enterはwinbuild/buildsにbin、lib、includeディレクトリを作成します.これをプロジェクトに適用すればいいです.
Visual Studio 19を開きます.
プロジェクトを作成し、次のコードを記述します.
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL* curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://google.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
プロジェクトプロパティーに入ります.Debugプラットフォームx 64の変更点
デバッグの設定
VC++ディレクトリに入り、含むディレクトリにwinbuild/builds/includeを追加し、winbuild/build/libをライブラリディレクトリに追加します.
c/c++に入り、前プロセッサ定義にCULLR STATICLIBを追加
他のライブラリディレクトリwinbuild/build/libを追加(Linkerに入る)
リンク入力の他の依存関係
libcurl_a.lib
libssl.lib
ws2_32.lib
crypt32.lib
Wldap32.lib
Normaliz.lib
追加
コンフィギュレーション・バージョンでも上記の方法を繰り返します.
Reference
この問題について(Visualstudio 19 libcurlバージョン), 我々は、より多くの情報をここで見つけました https://velog.io/@noooooh_042/visual-studio19-libcurl-빌드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol