快用苹果助手手机如何安装唯度

android -- libcurl移植、编译与测试
1、移植Curl工具到 2.3 环境步骤
& &1、直接到网站上下载 curl
& &2、利用tar在android编译环境下,一般放在 external 目录下
& &3、由于Curl依赖一些一些头文件及定义需要先执行配置文件先,在external/curl 下面编译curl.sh
& & & 需要 cd external/curl/.curl.sh进行执行,或者放在android根目录下的*.sh脚本中执行:source external/curl/curl.sh
& & & 其中修改了相应的CURL路径及编译工具链路径等变量
#!/bin/bash &&
ANDROID_HOME_CURL=../../ && \ &
NDK_HOME_CURL=../../ndk && \ &
PATH=&$ANDROID_HOME_CURL/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:$PATH& \ &
./configure --host=arm-linux CC=arm-eabi-gcc --with-random=/dev/urandom \ &
CPPFLAGS=&-I$NDK_HOME_CURL/platforms/android-8/arch-arm/usr/include \ &
-I $ANDROID_HOME_CURL/external/curl/include/ &\ &
-I $ANDROID_HOME_CURL/external/curl/3rd/include & \ &
-I $ANDROID_HOME_CURL/external/curl & \ &
-I $ANDROID_HOME_CURL/out/target/product/generic/obj/STATIC_LIBRARIES/libcurl_intermediates & \ &
-I $ANDROID_HOME_CURL/dalvik/libnativehelper/include/nativehelper & \ &
-I $ANDROID_HOME_CURL/system/core/include & \ &
-I $ANDROID_HOME_CURL/hardware/libhardware/include & \ &
-I $ANDROID_HOME_CURL/hardware/libhardware_legacy/include & \ &
-I $ANDROID_HOME_CURL/hardware/ril/include & \ &
-I $ANDROID_HOME_CURL/dalvik/libnativehelper/include & \ &
-I $ANDROID_HOME_CURL/frameworks/base/include & \ &
-I $ANDROID_HOME_CURL/frameworks/base/opengl/include & \ &
-I $ANDROID_HOME_CURL/frameworks/base/native/include & \ &
-I $ANDROID_HOME_CURL/external/skia/include & \ &
-I $ANDROID_HOME_CURL/out/target/product/generic/obj/include & \ &
-I $ANDROID_HOME_CURL/bionic/libc/arch-arm/include & \ &
-I $ANDROID_HOME_CURL/bionic/libc/include & \ &
-I $ANDROID_HOME_CURL/bionic/libstdc++/include & \ &
-I $ANDROID_HOME_CURL/bionic/libc/kernel/common & \ &
-I $ANDROID_HOME_CURL/bionic/libc/kernel/arch-arm & \ &
-I $ANDROID_HOME_CURL/bionic/libm/include & \ &
-I $ANDROID_HOME_CURL/bionic/libm/include/arch/arm & \ &
-I $ANDROID_HOME_CURL/bionic/libthread_db/include \ &
-include $ANDROID_HOME_CURL/system/core/include/arch/linux-arm/AndroidConfig.h \ &
-I $ANDROID_HOME_CURL/system/core/include/arch/linux-arm/ \ &
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID -DNDEBUG -DNDEBUG -DHAVE_CONFIG_H& \ &
CFLAGS=&-fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections \ &
-funwind-tables -fstack-protector -Wa,--noexecstack -Werror=format-security \ &
-fno-short-enums -march=armv5te -mtune=xscale &-Wno-psabi -mthumb-interwork &\ &
-fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith \ &
-Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point &\ &
-g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once \ &
-fgcse-after-reload -frerun-cse-after-loop -frename-registers &-UDEBUG \ &
-mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 & \ &
-Wpointer-arith -Wwrite-strings -Wunused -Winline -Wnested-externs \ &
-Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal \ &
-Wno-multichar -Wsign-compare -Wno-format-nonliteral -Wendif-labels \ &
-Wstrict-prototypes -Wdeclaration-after-statement -Wno-system-headers& &\ &
LIBS=&-nostdlib -Bdynamic -Wl,-T,$ANDROID_HOME_CURL/build/core/armelf.x \ &
-Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,nocopyreloc \ &
-L$ANDROID_HOME_CURL/out/target/product/generic/obj/lib -Wl,-z,noexecstack \ &
-Wl,-rpath-link=$ANDROID_HOME_CURL/out/target/product/generic/obj/lib \ &
-lc -llog -lcutils -lstdc++ \ &
-Wl,--no-undefined $ANDROID_HOME_CURL/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/lib/gcc/arm-eabi/4.4.0/libgcc.a &\ &
$ANDROID_HOME_CURL/out/target/product/generic/obj/lib/crtend_android.o \ &
-lm $ANDROID_HOME_CURL/out/target/product/generic/obj/lib/crtbegin_dynamic.o \ &
-L$ANDROID_HOME_CURL/external/curl/3rd/libs& &
#!/bin/bash
ANDROID_HOME_CURL=../../ && \
NDK_HOME_CURL=../../ndk && \
PATH=&$ANDROID_HOME_CURL/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:$PATH& \
./configure --host=arm-linux CC=arm-eabi-gcc --with-random=/dev/urandom \
CPPFLAGS=&-I$NDK_HOME_CURL/platforms/android-8/arch-arm/usr/include \
-I $ANDROID_HOME_CURL/external/curl/include/ &\
-I $ANDROID_HOME_CURL/external/curl/3rd/include & \
-I $ANDROID_HOME_CURL/external/curl & \
-I $ANDROID_HOME_CURL/out/target/product/generic/obj/STATIC_LIBRARIES/libcurl_intermediates & \
-I $ANDROID_HOME_CURL/dalvik/libnativehelper/include/nativehelper & \
-I $ANDROID_HOME_CURL/system/core/include & \
-I $ANDROID_HOME_CURL/hardware/libhardware/include & \
-I $ANDROID_HOME_CURL/hardware/libhardware_legacy/include & \
-I $ANDROID_HOME_CURL/hardware/ril/include & \
-I $ANDROID_HOME_CURL/dalvik/libnativehelper/include & \
-I $ANDROID_HOME_CURL/frameworks/base/include & \
-I $ANDROID_HOME_CURL/frameworks/base/opengl/include & \
-I $ANDROID_HOME_CURL/frameworks/base/native/include & \
-I $ANDROID_HOME_CURL/external/skia/include & \
-I $ANDROID_HOME_CURL/out/target/product/generic/obj/include & \
-I $ANDROID_HOME_CURL/bionic/libc/arch-arm/include & \
-I $ANDROID_HOME_CURL/bionic/libc/include & \
-I $ANDROID_HOME_CURL/bionic/libstdc++/include & \
-I $ANDROID_HOME_CURL/bionic/libc/kernel/common & \
-I $ANDROID_HOME_CURL/bionic/libc/kernel/arch-arm & \
-I $ANDROID_HOME_CURL/bionic/libm/include & \
-I $ANDROID_HOME_CURL/bionic/libm/include/arch/arm & \
-I $ANDROID_HOME_CURL/bionic/libthread_db/include \
-include $ANDROID_HOME_CURL/system/core/include/arch/linux-arm/AndroidConfig.h \
-I $ANDROID_HOME_CURL/system/core/include/arch/linux-arm/ \
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID -DNDEBUG -DNDEBUG -DHAVE_CONFIG_H& \
CFLAGS=&-fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections \
-funwind-tables -fstack-protector -Wa,--noexecstack -Werror=format-security \
-fno-short-enums -march=armv5te -mtune=xscale &-Wno-psabi -mthumb-interwork &\
-fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith \
-Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point &\
-g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once \
-fgcse-after-reload -frerun-cse-after-loop -frename-registers &-UDEBUG \
-mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 & \
-Wpointer-arith -Wwrite-strings -Wunused -Winline -Wnested-externs \
-Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal \
-Wno-multichar -Wsign-compare -Wno-format-nonliteral -Wendif-labels \
-Wstrict-prototypes -Wdeclaration-after-statement -Wno-system-headers& &\
LIBS=&-nostdlib -Bdynamic -Wl,-T,$ANDROID_HOME_CURL/build/core/armelf.x \
-Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,nocopyreloc \
-L$ANDROID_HOME_CURL/out/target/product/generic/obj/lib -Wl,-z,noexecstack \
-Wl,-rpath-link=$ANDROID_HOME_CURL/out/target/product/generic/obj/lib \
-lc -llog -lcutils -lstdc++ \
-Wl,--no-undefined $ANDROID_HOME_CURL/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/lib/gcc/arm-eabi/4.4.0/libgcc.a &\
$ANDROID_HOME_CURL/out/target/product/generic/obj/lib/crtend_android.o \
-lm $ANDROID_HOME_CURL/out/target/product/generic/obj/lib/crtbegin_dynamic.o \
-L$ANDROID_HOME_CURL/external/curl/3rd/libs&
& &4、编写android.mk编译脚本
& & & 增加编译生成libcurl.so动态库
& & & [cpp] view plaincopyprint?
LOCAL_PATH:= $(call my-dir) &
common_CFLAGS := -Wpointer-arith -Wwrite-strings -Wunused -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wno-system-headers -DHAVE_CONFIG_H &
######################### &&
# Build the libcurl library &&
include $(CLEAR_VARS) &
include $(LOCAL_PATH)/lib/Makefile.inc &
CURL_HEADERS := \ &
& & curlbuild.h \ &
& & curl.h \ &
& & curlrules.h \ &
& & curlver.h \ &
& & easy.h \ &
& & mprintf.h \ &
& & multi.h \ &
& & stdcheaders.h \ &
& & typecheck-gcc.h &
LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES)) &
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/ &
LOCAL_CFLAGS += $(common_CFLAGS) &
LOCAL_COPY_HEADERS_TO := libcurl/curl &
LOCAL_COPY_HEADERS := $(addprefix include/curl/,$(CURL_HEADERS)) &
LOCAL_PRELINK_MODULE := false &
LOCAL_MODULE:= libcurl &
LOCAL_MODULE_TAGS := optional &
# Copy the licence to a place where Android will find it. &&
# Actually, this doesn't quite work because the build system searches &&
# for NOTICE files before it gets to this point, so it will only be seen &&
# on subsequent builds. &&
ALL_PREBUILT += $(LOCAL_PATH)/NOTICE &
$(LOCAL_PATH)/NOTICE: $(LOCAL_PATH)/COPYING | $(ACP) &
& & $(copy-file-to-target) &
include $(BUILD_STATIC_LIBRARY) &
include $(CLEAR_VARS) &
include $(LOCAL_PATH)/lib/Makefile.inc &
CURL_HEADERS := \ &
& & curlbuild.h \ &
& & curl.h \ &
& & curlrules.h \ &
& & curlver.h \ &
& & easy.h \ &
& & mprintf.h \ &
& & multi.h \ &
& & stdcheaders.h \ &
& & typecheck-gcc.h &
LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES)) &
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/ &
LOCAL_CFLAGS += $(common_CFLAGS) &
LOCAL_COPY_HEADERS_TO := libcurl/curl &
LOCAL_COPY_HEADERS := $(addprefix include/curl/,$(CURL_HEADERS)) &
LOCAL_PRELINK_MODULE := false &
LOCAL_MODULE:= libcurl &
LOCAL_MODULE_TAGS := optional &
# Copy the licence to a place where Android will find it. &&
# Actually, this doesn't quite work because the build system searches &&
# for NOTICE files before it gets to this point, so it will only be seen &&
# on subsequent builds. &&
ALL_PREBUILT += $(LOCAL_PATH)/NOTICE &
$(LOCAL_PATH)/NOTICE: $(LOCAL_PATH)/COPYING | $(ACP) &
& & $(copy-file-to-target) &
include $(BUILD_SHARED_LIBRARY) &
######################### &&
# Build the curl binary &&
include $(CLEAR_VARS) &
include $(LOCAL_PATH)/src/Makefile.inc &
LOCAL_SRC_FILES := $(addprefix src/,$(CURL_CFILES)) &
LOCAL_MODULE := curl &
LOCAL_MODULE_TAGS := optional &
LOCAL_SHARED_LIBRARIES := libcurl &
LOCAL_SYSTEM_SHARED_LIBRARIES := libc &
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include $(LOCAL_PATH)/lib &
# This may also need to include $(CURLX_ONES) in order to correctly link &&
# if libcurl is changed to be built as a dynamic library &&
LOCAL_CFLAGS += $(common_CFLAGS) &
include $(BUILD_EXECUTABLE) &
LOCAL_PATH:= $(call my-dir)
common_CFLAGS := -Wpointer-arith -Wwrite-strings -Wunused -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wno-system-headers -DHAVE_CONFIG_H
#########################
# Build the libcurl library
include $(CLEAR_VARS)
include $(LOCAL_PATH)/lib/Makefile.inc
CURL_HEADERS := \
curlbuild.h \
curlrules.h \
curlver.h \
mprintf.h \
stdcheaders.h \
typecheck-gcc.h
LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/
LOCAL_CFLAGS += $(common_CFLAGS)
LOCAL_COPY_HEADERS_TO := libcurl/curl
LOCAL_COPY_HEADERS := $(addprefix include/curl/,$(CURL_HEADERS))
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE:= libcurl
LOCAL_MODULE_TAGS := optional
# Copy the licence to a place where Android will find it.
# Actually, this doesn't quite work because the build system searches
# for NOTICE files before it gets to this point, so it will only be seen
# on subsequent builds.
ALL_PREBUILT += $(LOCAL_PATH)/NOTICE
$(LOCAL_PATH)/NOTICE: $(LOCAL_PATH)/COPYING | $(ACP)
$(copy-file-to-target)
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/lib/Makefile.inc
CURL_HEADERS := \
curlbuild.h \
curlrules.h \
curlver.h \
mprintf.h \
stdcheaders.h \
typecheck-gcc.h
LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/
LOCAL_CFLAGS += $(common_CFLAGS)
LOCAL_COPY_HEADERS_TO := libcurl/curl
LOCAL_COPY_HEADERS := $(addprefix include/curl/,$(CURL_HEADERS))
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE:= libcurl
LOCAL_MODULE_TAGS := optional
# Copy the licence to a place where Android will find it.
# Actually, this doesn't quite work because the build system searches
# for NOTICE files before it gets to this point, so it will only be seen
# on subsequent builds.
ALL_PREBUILT += $(LOCAL_PATH)/NOTICE
$(LOCAL_PATH)/NOTICE: $(LOCAL_PATH)/COPYING | $(ACP)
$(copy-file-to-target)
include $(BUILD_SHARED_LIBRARY)
#########################
# Build the curl binary
include $(CLEAR_VARS)
include $(LOCAL_PATH)/src/Makefile.inc
LOCAL_SRC_FILES := $(addprefix src/,$(CURL_CFILES))
LOCAL_MODULE := curl
LOCAL_MODULE_TAGS := optional
LOCAL_SHARED_LIBRARIES := libcurl
LOCAL_SYSTEM_SHARED_LIBRARIES := libc
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include $(LOCAL_PATH)/lib
# This may also need to include $(CURLX_ONES) in order to correctly link
# if libcurl is changed to be built as a dynamic library
LOCAL_CFLAGS += $(common_CFLAGS)
include $(BUILD_EXECUTABLE)编译过程如果没有任何错误的话将会在/system/lib下生成 libcurl.so 及 /system/bin下面 curl 可执行文件
2、测试接口功能
#include &curl/curl.h&
#include &stdio.h&;
int main() {&
& & CURL *&
& & curl_global_init(CURL_GLOBAL_ALL);
& & curl = curl_easy_init();
& & if (curl) { & &&
& & & & curl_easy_setopt(curl, CURLOPT_URL, &/&); &
& & & & res = curl_easy_perform(curl);&
& & & & if (0!=res) { & & &
& & & & & & printf(&curl error: %d\n&, res); & & & &&
& & & & curl_easy_cleanup(curl); & &&
& & curl_global_cleanup();
& & return 0;
编译一个相应的android.mk生成可执行文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)&
LOCAL_C_INCLUDES += \
& & $(TOP)/external/curl/include/ \&
LOCAL_SRC_FILES:= curl_test.cpp
LOCAL_SHARED_LIBRARIES := libcurl
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := curl_test
include $(BUILD_EXECUTABLE)
即可进行测试的,输出的内容就是打开 / 页面的源代码
3、编译问题
& & & 请根据具体android版本及路径修改 curl.sh 文件并重新执行即可,暂时没碰到其它的问题。&>&&>&&>&&>&mac平台curl库源码编译libcurl
mac平台curl库源码编译libcurl
上传大小:18.02MB
这个资源蓝本在libcurl源码+openssl
: “http://download.csdn.net/detail/yq8278”当中。12年时候的编译文档,有一些不太适合现在的情况,编译文档做了一些修改。在reademe.txt当中有说明
综合评分:5(1位用户评分)
所需积分:0
下载次数:38
审核通过送C币
创建者:nigelyq
创建者:nigelyq
课程推荐相关知识库
上传者其他资源上传者专辑
移动开发热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
mac平台curl库源码编译libcurl
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
丰衣足食, 积分 560, 距离下一级还需 440 积分
论坛徽章:0
问下如何在LINUX下安装libcurl,大家用的libcurl都是什么版本
[ 本帖最后由 忆秋 于
17:52 编辑 ]
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
丰衣足食, 积分 560, 距离下一级还需 440 积分
论坛徽章:0
大家帮帮忙,比较急,我在做毕业设计为了实现对网站的访问,没多少时间了 ,各位高手帮帮忙
丰衣足食, 积分 560, 距离下一级还需 440 积分
论坛徽章:0
我下了个libcurl4-7.18.1-1.i386.rpm,用rpm&&-ivh&&libcurl4-7.18.1-1.i386.rpm编译时出现下列错误是什么原因
[root@localhost ~]# rpm -ivh libcurl4-7.18.1-1.i386.rpm
error: Failed dependencies:
& && &&&libcrypto.so.2 is needed by libcurl4-7.18.1-1.i386
& && &&&liblber.so.2 is needed by libcurl4-7.18.1-1.i386
& && &&&libldap.so.2 is needed by libcurl4-7.18.1-1.i386
& && &&&libsasl.so.7 is needed by libcurl4-7.18.1-1.i386
& && &&&libssl.so.2 is needed by libcurl4-7.18.1-1.i386
[root@localhost ~]#
论坛徽章:379
系统是什么?可以用yum更新不
丰衣足食, 积分 560, 距离下一级还需 440 积分
论坛徽章:0
系统是fedora core5.0,可以YUM
论坛徽章:0
原帖由 忆秋 于
15:18 发表
系统是fedora core5.0,可以YUM
請愛用 yum.
yum install curl curl-devel复制代码
若你要編譯連結使用 library 才需要裝 curl-devel
還有請不要用在線等這種描述,論壇不是給您即時諮詢的園地。
丰衣足食, 积分 560, 距离下一级还需 440 积分
论坛徽章:0
我是真的不怎么懂才来请教,提供的那几个网址都去看过了,可还是不是很明白
英语不是很好,也不清楚怎么装libcrul,自己试着装了几次都不行又不知道是哪里出了问题
希望能耐心点,我会虚心向学的
丰衣足食, 积分 560, 距离下一级还需 440 积分
论坛徽章:0
我先使用curl-config --cflags
curl-config --libs
curl-config --feature
yum install curl curl-devel这几个命令安装libcurl
结果编译 时还是出现问题是什么原因
[root@localhost example]# gcc -o wang wang.c
/tmp/ccfP2skF.o: In function `main':wang.c: (.text+0x12):对‘curl_easy_init’未定 义的引用
:wang.c: (.text+0x36):对‘curl_easy_setopt’未定义的引用
:wang.c: (.text+0x41):对‘curl_easy_perform’未定义的引用
:wang.c: (.text+0x4f):对‘curl_easy_cleanup’未定义的引用
collect2: ld 返回 1
[root@localhost example]#
[ 本帖最后由 忆秋 于
18:12 编辑 ]
论坛徽章:0
原帖由 忆秋 于
17:55 发表
我是真的不怎么懂才来请教,提供的那几个网址都去看过了,可还是不是很明白
英语不是很好,也不清楚怎么装libcrul,自己试着装了几次都不行又不知道是哪里出了问题
希望能耐心点,我会虚心向学的
fedora 上有收錄 curl,所以剛剛提供用 yum 即可安裝。或者是你可以學學基本系統管理的東西,把基礎 package 管理議題熟悉一下也不錯,這樣至少後續你要在系統上進形成是設計開發會比較輕鬆一點。
官方提供範例來看:
程式碼改一下,成為:
SayyaBBS:kendlee@~/tmp& cat -n simple.c
& &&&1&&/*& && && && && && && && && && && & _& &_ ____&&_
& &&&2& &*&&Project& && && && && && && &___| | | |&&_ \| |
& &&&3& &*& && && && && && && && && &&&/ __| | | | |_) | |
& &&&4& &*& && && && && && && && && & | (__| |_| |&&_ &| |___
& &&&5& &*& && && && && && && && && &&&\___|\___/|_| \_\_____|
& &&&6& &*
& &&&7& &* $Id: simple.c,v 1.6
14:22:52 bagder Exp $
& &&&8& &*/
& &&&9
& & 10&&#include &stdio.h&
& & 11&&#include &curl/curl.h&
& & 12
& & 13&&int main(void)
& & 14&&{
& & 15& & CURL *
& & 16& & CURL
& & 17
& & 18& & curl = curl_easy_init();
& & 19& & if(curl) {
& & 20& && &curl_easy_setopt(curl, CURLOPT_URL, &&);
& & 21& && &res = curl_easy_perform(curl);
& & 22
& & 23& && &/* always cleanup */
& & 24& && &curl_easy_cleanup(curl);
& & 25& & }
& & 26& & return 0;
& & 27&&}
& & 28
复制代码
編譯需要哪些程式庫?使用 curl --libs 看看...
curl-config --libs
-lcurl
复制代码
輸出只有連結使用 curl library 的話,那簡化編譯方式就是:
SayyaBBS:kendlee@~/tmp&
SayyaBBS:kendlee@~/tmp& ls -l
總計 4
-rw-rw-r-- 1 kendlee kendlee 624
18:09 simple.c
SayyaBBS:kendlee@~/tmp&
SayyaBBS:kendlee@~/tmp&
SayyaBBS:kendlee@~/tmp& gcc -lcurl simple.c
SayyaBBS:kendlee@~/tmp&
SayyaBBS:kendlee@~/tmp&
SayyaBBS:kendlee@~/tmp& ls -l
總計 12
-rwxrwxr-x 1 kendlee kendlee -08 18:10 a.out*
-rw-rw-r-- 1 kendlee kendlee&&624
18:09 simple.c
SayyaBBS:kendlee@~/tmp&
复制代码
若你要使用 gcc $(curl-config --libs) simple.c 也可以。
執行程式輸出結果:
SayyaBBS:kendlee@~/tmp& ./a.out
&HTML&&HEAD&&meta http-equiv=&content-type& content=&text/charset=utf-8&&
&TITLE&302 Moved&/TITLE&&/HEAD&&BODY&
&H1&302 Moved&/H1&
The document has moved
&A HREF=&.tw/&&here&/A&.
&/BODY&&/HTML&
复制代码
所以問題拉回來,其實您的問題主要還是對於 unix 基本 programming 的技巧比較不清楚,包含程式庫連結方式不清楚等,這克服學會後就都沒問題了。
丰衣足食, 积分 560, 距离下一级还需 440 积分
论坛徽章:0
谢谢kenduest 的回答,我想问下可不可以用libcurl控制不同线程数访问同一个网站
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处

我要回帖

更多关于 快用苹果助手 的文章

 

随机推荐