- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我不知道如何将静态 libcurl 库正确添加到我的 Code::Blocks IDE。我希望它是静态的,因为在我的程序运行期间不需要默认情况下不包含在 Windows 中的 .dll 文件。我正在使用这个 libcurl: http://curl.haxx.se/dlwiz/?type=lib&os=Win32&flav=- (没有 OpenSSL 的 minGW)
这是我的全局编译器设置:http://img845.imageshack.us/img845/1381/halpr.jpg
我收到以下错误:
ld.exe||cannot find -lCURL_STATICLIB| ||=== Build finished: 1 errors, 0 warnings ===|
编译这段代码时:
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;
}
显然它没有找到 CURL_STATICLIB,因此我不知道为什么。我什至不确定是否需要将 CURL_STATICLIB 添加到我的链接器设置中(我在其他论坛上阅读过)。我发现有些人有同样的问题,但在任何地方都没有得到正确的回答:
stackoverflow.com/questions/4176503/frustrated-with-libcurl
forums.codeblocks.org/index.php?topic=11391.0
old.nabble.com/gcc-working-with-libcurl-td20506927.html
forums.devshed.com/c-programming-42/linker-error-using-libcurl-698071.html
我已经厌倦了与此抗争,请帮助我。
编辑:
你好 Victor,谢谢你的回复!
我会尽量写得详细一点,以免造成误会。因此,这是我的 C:\libs\文件夹的目录/文件夹树的图像:
http://img199.imageshack.us/img199/6977/curl1.png
可以看到,它还包括构建日志,你会注意到这次的错误是与我之前发布的不同。这是因为我更改了全局编译器和构建项目设置。
我的新构建项目设置:http://img863.imageshack.us/img863/4404/buildoptions.png我的新全局编译器设置:http://img225.imageshack.us/img225/4926/curl2.png
我确信我配置了错误的这些设置,这就是我无法编译它的原因。
最佳答案
好的,我成功地使用 libcurl 使用静态链接构建了您的示例。完成这项工作所涉及的细节非常复杂——正确设置它对于粗心的人来说可能会很棘手。
以下是我用来完成这项工作的步骤,请务必仔细遵循:
转到项目构建选项->编译器设置->#defines:输入CURL_STATICLIB
。定义后,libcurl.h header 将对其函数签名进行预处理以适应静态链接。否则,假定为动态链接,然后损坏的名称变为 _imp__*
。屏幕截图中 Unresolved 错误表明它正在尝试动态链接而不是所需的静态链接。
在 Project build options->Linker settings->Link libraries 下,确保它包含以下内容:curl、rtmp、idn、ssl、ssh2、crypto、z、ws2_32 , wldap32, winmm, gdi32。请注意,顺序很重要。由于 gnu 链接器的设计缺陷,需要首先列出最依赖的库,然后是最不依赖的库。 msvc link 和 borland 的 ilinker 等其他链接器不会出现此类问题——这些库可以按任何顺序列出。
在 Project build options->Linker settings->Other linker options 下添加“-static”。这将确保使用“idn”的静态版本。如果省略此开关,则您编译的程序可能依赖于“libidn-11.dll”来运行,这可能不是您想要的。
此时,您应该能够毫无问题地编译和链接 libcurl 程序。有几件事值得一提,
在 Other linker options 下,不需要您屏幕截图中的其他额外开关。 “libcurl.a”已被列出并包含在链接库中。
“libcrypto.a”似乎包含与“libeay32.a”相同的引用,因此只需要其中一个。但是,'libeay32.a' 尽管它的大小较大,但会导致动态链接。如果您希望您的应用程序“完全独立”,请使用“libcrypto.a”,而不是像屏幕截图中那样。
如果您以后希望动态链接,只需将链接库 下的列表替换为“curldll”并删除CURL_STATICLIB
定义。不需要额外的库(例如 ssl、idn、rtmp 等),因为 libcurl.dll 已经涵盖了它们。
通过使用代码块的用户模板,您可以避免新 libcurl 程序的繁琐易错设置。 (例如,文件->新建->项目->用户模板)
希望这能一劳永逸地解决您在使用 libcurl 时遇到的任何构建问题。
关于c++ - 将静态 libcurl 添加到 Code::Blocks IDE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6243638/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!