『壹』 如何編譯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。。。