LibCurlをVisual Studio 2013で動作させるのに問題があります。現在のバージョン(curl-7.33.0)をダウンロードし、このサイトで見つけた指示に従ってみました: sing LibCurl with Visual 201
しかし、ダウンロードしたフォルダーにcurllib.libが見つかりません。そして、私はまだエラーが発生しています:
インターネットで詳細なヘルプを検索した後。これらのエラーメッセージが表示されます。 libcurl.libへのリンクに問題があるように見えますか?
これは私が設定したものです:
/ libの中にはlibcurl.libとlibcurl.dllがあります
[〜#〜] update [〜#〜]
Win32 MSVCのこのリリースをダウンロードしました。 http://curl.haxx.se/download.html#Win32 libcurlライブラリを追加し、正常にコンパイルした後、次のエラーメッセージが表示されます。
The application was unable to start correctly (0xc000007b). Click OK to close the application.
実行しようとしているサンプルコードを次に示します。
#include <iostream>
#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, "http://google.com");
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
最終更新
LibCurlがVisual Studio 2013で動作するようになったと思います。永続性ftw!これらのエラーメッセージを解決するために何時間も費やした後、私はすべてが今うまく機能していると言うことに少しlittleしています。そのため、LibCurlをVisual Studio 2013で動作させるための明確で簡潔な指示を得るために、この質問に賞金をかけています。
これは私がそれを機能させるためにしたことです:
まず、こちらからWin32 MSVCパッケージをダウンロードします。 http://curl.haxx.se/download.html#Win32 これらの手順のために、C:\ LibCurlにダウンロードしたとします。
Visual Studioで新しいプロジェクトを開始します。プロジェクト|プロジェクトのプロパティ| VC++ディレクトリ|ディレクトリを含める|に移動しますダウンロードしたパッケージ内のincludeディレクトリにパスを追加します。 (C:\ LibCurl\include)
次に、プロジェクト|プロジェクトのプロパティ|リンカー|全般|追加のライブラリディレクトリ|に移動します。 libディレクトリにパスを追加します。 (curllib.dllがある場所)
次に、プロジェクト|プロジェクトのプロパティ|リンカー|入力|追加の依存関係|に移動します。そしてcurllib.libを追加します
テストプログラムをコンパイルすると、libsasl.dllが見つからないというメッセージが表示される可能性があります。このファイルをダウンロードして、ビルドと同じディレクトリに配置する必要があります。 7-Zipを使用してlibsasl.dllをOpenLDAP for Windowsから抽出しました。 Windows用OpenLDAP
これは、上記のテストコードの結果です。
私はコメントでそれを言うでしょうが、私はポイントに欠けています。 .dllをプログラム実行カタログにコピーする必要はありません。 プロジェクト|プロパティ|構成プロパティに移動し、環境行:PATH=$(ExecutablePath)$(LocalDebuggerEnvironment)
に書き込みます。
今後、プロジェクト|プロジェクトプロパティ| VC++ディレクトリ|バイナリで言及したカタログのすべての.dllは、コピーせずに使用できるようになります。
残りはあなたが書いたとおりです。
これらの指示の多くは、curl用の win32-ssl-devel-msvc パッケージ、はもう存在しません 。
次の手順では、onlyを使用してlibcurlをビルドできます。
C:\libcurl
_を使用します)"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
VC環境変数を初期化するには(必要に応じてVS 2013インストールディレクトリを調整します))cd C:\libcurl\winbuild
_nmake /f Makefile.vc mode=static VC=12
_C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl
_に表示されるはずですC:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include
_を追加CURL_STATICLIB
_C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib
_libcurl_a.lib
_を追加次のサンプルは、libcurlの呼び出しを示しています。
_#include "stdafx.h"
#include <curl/curl.h>
void main(int argc, char* argv[])
{
CURL *curl = curl_easy_init();
if (curl) printf("curl_easy_init() succeeded!\n");
else fprintf(stderr, "Error calling curl_easy_init().\n");
}
_
私が見つけた最も簡単な方法は、最初にnugetがインストールされていることを確認することです。
次に、プロジェクトを作成します。
次に http://www.nuget.org/packages/curl/ に移動し、指示に従ってパッケージマネージャーコンソールに移動し、PM> Install-Package curl
その後、プロジェクトディレクトリでパッケージディレクトリを検索すると、インクルードファイルとライブラリファイルが見つかります。 120ではなくVisual Studio 110のバージョンがありますが、libcurlはVisual Studio 2013で使用できるCライブラリであることに注意してください。プロジェクトプロパティのVisual C++ディレクトリの下にincludeディレクトリとlibディレクトリが指定されていることを確認してください。
リンカへの追加入力として次のファイルがあることを確認してくださいlibcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib;
Curl/libcurlを使用する別の方法は、 CMake v2.8.12 +でビルドすることです(gitが既にコンピューターにインストールされていると仮定します)
Cmdウィンドウを開き、dirを適切なフォルダーに変更します
git clone https://github.com/bagder/curl.git
mkdir msbuild
cd msbuild
cmake ..\curl -G"Visual Studio 12 Win64" -DCMAKE_INSTALL_PREFIX=C:\curl.vc12 -DCURL_STATICLIB=ON
< ... lots of output here ... >
生成されたCURL.slnをVisual Studioで開き、ビルドします。
例で使用するCMakeオプション
-Gは、ビルドジェネレーターを選択します。この場合、Visual Studio 2013 64ビットターゲット
-DCMAKE_INSTALL_PREFIX-ターゲットをインストールするルートフォルダーを提供します
-DCURL_STATICLIB = ON-静的ライブラリのビルドを生成します
インストールターゲットをビルドすると、C:\ curl.vc12にbin/include/libフォルダーが見つかります。
ソリューションへのこれらのパスを提供し、curl libを使用してコードをビルドします。
私はVS2012でゼロからそれをやろうとしました(私は2013を持っていません)、それは完璧に動作します。
だから、私はあなたの問題が何であるか分かりませんが、:
これは少し遅いですが、まだ問題を抱えている人にとっては、この方法は私にとって最もうまくいきました:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
。http://curl.haxx.se/download.html
から現在のcurl-X.Zipをダウンロードして解凍します。curl-X/winbuild
でコマンドラインを開きます。vcvars32.bat
を呼び出します。nmake /f Makefile.vc mode=static VC=12
を呼び出します。curl-X/builds/libcurl-XXX
に移動します。そこには、インクルードとlibcurl_a.lib
があります。このライブラリは私には問題なく動作します。
このライブラリを使用してコードをコンパイルするときに、-DCURL_STATICLIB
を定義することを忘れないでください。
Visual Studio 2017の場合、 link の手順がうまくいきました。リンクの有効期限が切れた場合、またはGitHubからクローンを作成する代わりにlibcurl Zipファイルをダウンロードするユーザー向けに、ここで手順を書き留めます。
“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat” x64
を使用して環境変数を設定します。コマンドが成功すると、Environment initialized for 'x64'
というメッセージが表示されます
download libcurl から圧縮されたlibcurlファイルをダウンロードして解凍します。 .Zip
ファイルを使用しました。
cd
を、抽出したlibcurlフォルダー内のwinbuild
ディレクトリーに入れます。nmake /f Makefile.vc mode=dll MACHINE=x64
を実行してビルドします。ビルドオプションの詳細については、winbuild
フォルダーのBUILD.WINDOWS
テキストファイルを参照してください。cd
をbuilds
フォルダーに移動して、コンパイルされたファイルを見つけます。ではごきげんよう!
最新のパッケージを使用して、VC++で動作させる簡単な方法を見つけました。基本的に、Visual Studioでのlibcurlの使用の手順に従いました。 libcurlとVC++は、この命令では非常に古いものです。
まずダウンロードページでZipファイルをダウンロードします https://curl.haxx.se/download.html Zipパッケージは https://curl.haxx.se/download/curl- 7.50.1.Zip
Projects-> Windows\VC10(またはVCのバージョン)\ lib\libcurl.slnに移動し、VC++でプロジェクトを開きます。
DLL Release。DLLデバッグはVC++では機能しません。
Build\Win32\VC10\DLL Releaseに移動すると、前の手順で生成されたlibおよびdllファイルを見つけることができます。
Includeフォルダーとlibフォルダーを使用して、新しいフォルダーを作成します。 libcurb.dllとlibcurb.libをDLL Releaseフォルダーにあるnew\libにコピーします。curl-7.50.1\ includeのすべてをnew\includeフォルダーにコピーします。
C++プロパティ->構成プロパティ-> VC++ディレクトリ、include \ディレクトリにnew\includeを追加、ライブラリディレクトリにnew\libを追加。 new\libをリンカーに追加->一般->追加のライブラリディレクトリ、libcurl.libをリンカーに追加->入力->追加の依存関係
実行可能ファイルと同じフォルダにdllファイルを配置する必要があるようです。
動作するはずです。
問題は、デフォルトのVS2013プラットフォームツールのターゲットがNuGetパッケージに設定されていないことです。これが、VS2012では機能するがVS2013では機能しない理由です。手動で置換ターゲットファイルを作成しました。手順とダウンロード:
Curl v7.37.0ソースコードをダウンロードし、提供されているVisual Studioプロジェクトファイルを使用します。
過去数週間、オリジナルのVC6ファイルをベースにした自分の個人プロジェクトファイルを研磨し、リポジトリに追加しました。
DLLおよび静的ライブラリは、Win32およびx64構成の両方でOpenSSLおよびWindows SSPI/SChannelをサポートしてビルドされます。