‘壹’ 如何编译libcurl
1. android
1.1配置
将curl源文件加到在Android源代码external/curl/中。创建shell脚本configure.sh,并把它放到external/curl/中。
脚本内容如下:
#!/bin/sh SDK_ROOT=/home/nudtzxm/android_sdk export PATH="$SDK_ROOT/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:$PATH" ./configure --host=arm-linux CC=arm-eabi-gcc \ CPPFLAGS="-I $SDK_ROOT/system/core/include -I $SDK_ROOT/hardware/libhardware/include -I $SDK_ROOT/hardware/libhardware_legacy/include -I $SDK_ROOT/hardware/ril/include -I $SDK_ROOT/dalvik/libnativehelper/include -I $SDK_ROOT/frameworks/base/include -I $SDK_ROOT/frameworks/base/opengl/include -I $SDK_ROOT/external/skia/include -I $SDK_ROOT/out/target/proct/generic/obj/include -I $SDK_ROOT/bionic/libc/arch-arm/include -I $SDK_ROOT/bionic/libc/include -I $SDK_ROOT/bionic/libstdc++/include -I $SDK_ROOT/bionic/libc/kernel/common -I $SDK_ROOT/bionic/libc/kernel/arch-arm -I $SDK_ROOT/bionic/libm/include -I $SDK_ROOT/bionic/libm/include/arch/arm -I $SDK_ROOT/bionic/libthread_db/include -I $SDK_ROOT/bionic/libc/kernel/common -I $SDK_ROOT/bionic/libc/kernel/arch-arm -I $SDK_ROOT/system/core/libcutils -I $SDK_ROOT/out/target/proct/generic/obj/STATIC_LIBRARIES/libcutils_intermediates -I $SDK_ROOT/out/target/proct/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates -I $SDK_ROOT/system/core/include/arch/linux-arm/ -include $SDK_ROOT/system/core/include/arch/linux-arm/AndroidConfig.h" \ CFLAGS="-nostdlib -fno-exceptions -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -Wno-multichar -msoft-float -march=armv5te -mtune=xscale -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -mthumb-interwork -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -DSK_RELEASE -DNDEBUG -g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -DNDEBUG -UDEBUG -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64" \ LIBS="-L$SDK_ROOT/out/target/proct/generic/obj/lib -L$SDK_ROOT/out/target/proct/generic/obj/STATIC_LIBRARIES/libcutils_intermediates/libcutils.a -lc -lm -ldl $SDK_ROOT/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/interwork/libgcc.a"
进入到curl的根目录,运行这个脚本:
1.2 Make
进入curl的根目录,运行make curl命令:
1.3 参数配置
您可能会看到参数配置是复杂的。如何设置呢?你应该阅读curl/ Android.mk的注释。
2 iOS
我改变了参数的配置,所以配置命令是:
./configure –disable-shared –host=arm-apple-darwin10
3.视窗
打开的vc6curl.dsw,并选择“DLL Release”来编译。您会在CURL_ROOT\lib\DLL-Release
发现libcurl.dll和libcurl_imp.lib。
4.关于头文件
curl/include的头文件,只在成功配置后使用,头文件在不同的平台上是不同的。
‘贰’ linux编libcurl库时依赖openssl怎么编
如果你在编译时遇到这个错误,这可能是下面的原因:你尝试编译的程序使用OpenSSL,但是需要和OpenSSL链接的文件(库和头文件)在你Linux平台上缺少。
要解决这个问题,你需要安装OpenSSL 开发包,这在所有的现代Linux发行版的标准软件仓库中都有。
要在Debian、Ubuntu或者其他衍生版上安装OpenSSL:
复制代码
代码如下:
$ sudo apt-get install libssl-dev
‘叁’ 为什么编译好的libcurl静态lib用不了
When building an application that uses the static libcurl library, you must
add -DCURL_STATICLIB to your CFLAGS. Otherwise the linker will look for
dynamic import symbols. If you get linker error like "unknown symbol
__imp__curl_easy_init ..." you have linked against the wrong (static)
library. If you want to use the libcurl.dll and import lib, you don't need
any extra CFLAGS, but use one of the import libraries below
在这里:http://curl.haxx.se/docs/faq.html#Link_errors_when_building_libcur
所以我们这样来改
菜单-->project -->settings-->C++选项卡的General里面的Project Option里面加上-DCURL_STATICLIB (其实就相当于在Preprocessor definitions里面加上CURL_STATICLIB一样)
确定-->rebuild all
又出错了:
libcurl.lib(easy.obj) : error LNK2001: unresolved external symbol
libcurl.lib(telnet.obj) : error LNK2001: unresolved external symbol
libcurl.lib(easy.obj) : error LNK2001: unresolved external symbol
.....
这个一看就明白了马上加上:
#pragma comment ( lib, "ws2_32.lib" )
#pragma comment ( lib, "wldap32.lib" )
编译-->叮的一个美妙的声音想起了,哈哈,编译成功
‘肆’ 请教 如何交叉编译 libcurl-CSDN论坛
1.在 curl 官网下载最新版curl-7.31.0.tar.gz
2.解压curl-7.31.0
3.cd 到url-7.31.0 目录下
--- ./configure --prefix=/usr/local/curl --prefix 后为 要安装的目录
--- make
---sudo make install 执行install
运行以上三个命令后 /usr/local/curl目录下 出现以下四个文件夹
bin include lib share
‘伍’ 如何使用libcurl库编译文件
我是这样编的 :
① ./configure --prefix=/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi CC=/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc --host=arm-linux
② 然后make ,
③ 接着 sudo make install
这样 就在/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/lib 下面 看到libcurl.so ,
然后我要用这个libcurl.so 交叉编译一个c文件
④ arm-none-linux-gnueabi-gcc curl3.c -o curl0 -L. -lcurl
‘陆’ ZABBIX在编译过程中报错:configure: error: libcurl is not available for static linking
./configure --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix
这是正确的安装方式
‘柒’ 为什么编译好的curl静态lib用不了
你把它curl.lib引到库里面,然后只包含头文件的上级目录,原目录需要是<curl/curl.h>
1 静态库路径设置正确
2 定义CURL_STSTICLIB 解决extern函数声明问题,否则是动态库函数名称
3 增加ws2_32.lib,wldap32.lib 解决tcp通信问题
‘捌’ libcurl 怎么设置内容编码
以下方法用CURL提交post表单 1. 编译环境. 安装vs2010或其他版本. vs2010 express版也可以。不要低于vc6. 2. 搜索curl-7.25.0.zip,下载。 解压到c:\curl-7.25.0 打开Visual Studio Command Prompt (2010) cd \curl-7.25.0\winbuild nmake /f Mak...
‘玖’ 有没有人用过NDK编译libcurl的
没用的,那个问题我就是加上CFLAGS="-nostdlib"之后就没有了,缺少的头文件我从NDK里的Android 5 里面拷了,现在是configure的时候显示conftest不存在的问题,你有编译过curl么?我在文件夹里里外外也没搜到conftest。。。