Articles of libcurl

在linux下用mingw32交叉编译链接libcurl for Windows

我已经使用mingw32编译了libcurl,并试图用我的Linux机器上的mingw32作为Windows系统的程序来链接它。 我输出的文件是libcurl-4.dll libcurl.a libcurl.la libcurl.lai。 我已经将它们包含在我的mingw32 libs文件夹中:/ usr / x86_64-w64-mingw32 / lib 我能够find一些与libstdc ++和libgcc链接的其他主题,以便在执行时关注依赖性错误,但是当尝试添加libcurl.a时,它不会编译期间。 我使用了以下内容: $ x86_64-w64-mingw32-g++ main.cpp -o hello.exe -static-libgcc -static-libstdc++ -static "/usr/x86_64-w64-mingw32/lib/libcurl.a" -lpthread 但是,我不能得到它使用libcurl.a,并继续收到这些错误。 /tmp/ccIceRus.o:main.cpp:(.text+0xde): undefined reference to `__imp_curl_easy_init' /tmp/ccIceRus.o:main.cpp:(.text+0x106): undefined reference to `__imp_curl_easy_setopt' /tmp/ccIceRus.o:main.cpp:(.text+0x122): undefined reference to `__imp_curl_easy_setopt' /tmp/ccIceRus.o:main.cpp:(.text+0x13e): undefined reference to `__imp_curl_easy_setopt' /tmp/ccIceRus.o:main.cpp:(.text+0x159): undefined reference to `__imp_curl_easy_setopt' /tmp/ccIceRus.o:main.cpp:(.text+0x169): undefined reference to […]

Libcurl没有更新

我在Ubuntu 14.04,需要curl版本> 7.40,所以我已经按照一些步骤来安装最新的curl版本(7.48) 作为根 wget http://curl.haxx.se/download/curl-7.48.0.tar.gz apt-get install libtool apt-get install make 提取文件 tar -xvf curl-7.48.0.tar.gz 然后在提取的文件夹中: ./buildconf ./configure make make install 更新了二进制文件 mv /usr/bin/curl /usr/bin/curl.bak cp /usr/local/bin/curl /usr/bin/curl 然后重新启动机器。 我可以看到新的curl版本,但libcurl库没有更新,仍然是7.35 根:〜#curl -V curl 7.48.0 (x86_64-unknown-linux-gnu) libcurl / 7.35.0, OpenSSL / 1.0.1f zlib / 1.2.8 libidn / 1.28 librtmp / 2.3 协议:dict文件ftp ftps gopher http […]

有没有办法直接更改二进制的SONAME?

我的程序依赖于libcurl.so.3 ,但是在RHEL6中,并没有像这样的软件libcurl.so.3 ->libcurl.so.4 (当我创build这个链接时,我的程序可以顺利运行)。 但有一个像这样的软链接: libcurl.so->libcurl.so.4 。 我想直接从libcurl.so.3到libcurl.so修改libcurl.so.3.0.0.0的SONAME 。 然后,我可以在RHEL 6上运行我的程序,而无需自己创build软链接。 也许我的解决scheme是愚蠢的,但我想学习如何直接修改二进制文件是一件有趣的事情。 大家给你评论,devnull。 也许我没有说清楚。 $ readelf -d libcurl.so.3.0.0 偏移量为0x303cc的dynamic段包含25个条目: 标签types名称/值 0x00000001(需要)共享库:[libssl.so.2] 0x0000000e(SONAME)库soname:[ libcurl.so.3 ] —>我想把它改成libcurl.so

我如何链接libcurl到我的C ++程序在Linux中?

我需要在我正在写的ubuntu机器上的一个软件中使用libcurl。 我使用Eclipse来编写和编译所有的软件。 当我把libcurl文件放在与.cpp文件相同的文件夹中,并在头文件中包含curl.h文件时,当我尝试编译程序时,会出现这些错误: Building target: sms Invoking: GCC C++ Linker g++ -o"sms" ./src/sms.o ./src/sms.o: In function `main': /home/geekman/workspace/sms/Debug/../src/sms.cpp:38: undefined reference to `curl_easy_init' /home/geekman/workspace/sms/Debug/../src/sms.cpp:42: undefined reference to `curl_easy_setopt' /home/geekman/workspace/sms/Debug/../src/sms.cpp:44: undefined reference to `curl_easy_setopt' /home/geekman/workspace/sms/Debug/../src/sms.cpp:46: undefined reference to `curl_easy_perform' /home/geekman/workspace/sms/Debug/../src/sms.cpp:47: undefined reference to `curl_easy_cleanup' collect2: ld returned 1 exit status make: *** [sms] Error 1 我从libcurl中获取包含文件夹的内容,并将它们放在与.cpp文件相同的文件夹中。 然后在.cpp文件的头文件中input: […]

使用curl在Windows 7中获得一个Https网页

我只需要获取一个HTTPS页面,而且我正在使用curl,将Curl.exe应用程序放在我的Path中,并用一个Perl文件调用它。 但是,然后我得到错误“*协议https不支持或禁用在libcurl”。 我一直在四处寻找,我找不到一套坚实的指示,以使其工作。 我已经安装了cygwin和OpenSSL-Win32,但是有些东西告诉我我将不得不从头开始编译curl。 我没有这方面的经验。 你怎么做呢?

在CURL库请求中使用C ++ – Windows设置Internet Explorer代理

那么我想使用默认的Internet Explorer连接代理设置在cURL中的请求,这是我的示例代码: CURL *curl; CURLcode result; curl = curl_easy_init(); char errorBuffer[CURL_ERROR_SIZE]; if (curl) { // Now set up all of the curl options curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_HEADER, 0); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt"); // Attempt to retrieve the remote page result = curl_easy_perform(curl); // Always cleanup curl_easy_cleanup(curl); } 我该如何检索代理Internet Explorer设置,然后传递给我的cURL,以便能够使用代理发出请求? […]

在Visual Studio 2008中构buildlibcurl库

我正在尝试从源代码构buildlibcurl。 我已经尝试了几乎所有已经在任何论坛上回答的事情,但没有成功。 任何人都可以告诉我如何做到这一点? 我发现这个问题构buildlibcurl库在c + +,Noob的问题,但解决scheme不适合我 然后我发现这个指南http://curl.haxx.se/libcurl/c/Using-libcurl-with-SSH-support-in-Visual-Studio-2008.pdf我跟着每一步,事情顺利,直到结束文件的第3.4节,当我尝试构buildlibSSH2它显示错误 fatal error LNK1181: cannot open input file 'libeay32.lib;ssleay32.lib' 这个错误的可能原因是该path包含“空格”,但我的path是 C:\openssl_lib\lib 如文件中所写(不含空格)。 当我找不到任何解决scheme,我甚至重命名该文件夹 "openssl_lib" to "openssllib" 只是为了确保“_”字符不是这个错误的原因,但没有用。 然后,我发现有时连接器会导致问题,如果库名称不存在“lib”前缀。 我手动将库文件重命名为 libeay32.lib and libssleay32.lib 但是这也不能解决问题。 我已经花了8个小时,一次又一次地经历了所有的麻烦,我现在太沮丧,所以请帮助… 环境详细信息:Windows 7 64位Visual Studio 2008

curl:(1)在libcurl中不支持或禁用协议https

可能重复: 协议https在libcurl中不受支持或禁用 试图在Windows XP(32位)上执行Curl时出现此消息。 任何想法如何能得到它的工作?

使用Libcurl无需通过authenticationntlm代理

我正在testing一些networking简单的过程,以更好地理解和知道如何使用NTLM。 在这之后( ntlm–proxy-without-password )Q&A我发现使用当前用户的日志信息通过ntml来validation我的事务是很热的。 命令是这样的:curl.exe -U:–proxy-ntlm –proxy myproxy.com:8080 http://www.google.com 知道我必须使用libcurl做同样的事情,因为我需要实现这个结果到我正在开发的应用程序中。 有办法做到这一点? 在这个问答之后,我发现很热