免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10451 | 回复: 6
打印 上一主题 下一主题

折腾了2天,都无法在QT Creator中引用libcurl库,求助! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-05 15:34 |只看该作者 |倒序浏览
本帖最后由 冷寒生 于 2012-12-05 15:35 编辑

1. 已经在MinGW下编译libcurl出了libcurl.a

参考文章:http://timothyqiu.com/archives/build-libcurl-with-mingw/

2. 在MinGW下测试libcurl

// simple.c
#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://www.baidu.com");

    /* Perform the request, res will get the return code */
    res = curl_easy_perform(curl);
    /* Check for errors */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}

gcc -L F:/Source/curl-7.28.0/lib simple.c -DCURL_STATICLIB -lcurl -lws2_32 -lwldap32

#编译成功!!!

3. 在Qt Creator中编写测试程序

// main.cpp
#include <QtCore/QCoreApplication>
#include <curl/curl.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    CURL *curl;
    curl = curl_easy_init();
    return a.exec();
}

///////////////////////////////////////

.pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2012-12-05T15:05:51
#
#-------------------------------------------------

QT       += core

QT       -= gui

TARGET = test
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

LIBS += -L F:/Source/curl-7.28.0/lib -DCURL_STATICLIB -lcurl -lws2_32 -lwldap32
SOURCES += main.cpp


4. 编译


为项目test执行构建步骤 ...
正在启动 "D:\Qt\qtcreator-2.2.1\mingw\bin\mingw32-make.exe"
D:/Qt/qtcreator-2.2.1/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/Qt/qtcreator-2.2.1/未命名-build-desktop'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\4.7.3\include\QtCore" -I"..\..\4.7.3\include" -I"..\..\4.7.3\include\ActiveQt" -I"debug" -I"..\test" -I"." -I"..\..\4.7.3\mkspecs\win32-g++" -o debug\main.o ..\test\main.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,console -mthreads -Wl -o debug\test.exe debug/main.o  -L"d:\Qt\4.7.3\lib" -L F:/Source/curl-7.28.0/lib -DCURL_STATICLIB -lcurl -lws2_32 -lwldap32 -lQtCored4
mingw32-make[1]: Leaving directory `D:/Qt/qtcreator-2.2.1/未命名-build-desktop'
debug/main.o: In function `main':
D:\Qt\qtcreator-2.2.1\未命名-build-desktop/../test/main.cpp:9: undefined reference to `_imp__curl_easy_init'

collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\test.exe] Error 1
mingw32-make: *** [debug] Error 2
进程"D:\Qt\qtcreator-2.2.1\mingw\bin\mingw32-make.exe"退出,退出代码 2 。
构建项目test 时发生错误 (目标: 桌面)
当执行构建步骤 'Make'时

论坛徽章:
0
2 [报告]
发表于 2012-12-07 18:10 |只看该作者
回复 1# 冷寒生


    不如直接用Qt自己的url class。

论坛徽章:
0
3 [报告]
发表于 2012-12-17 20:20 |只看该作者
路径中不能带中文。。。试着去掉看看。。

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
4 [报告]
发表于 2012-12-21 13:05 |只看该作者
为了保持最大的兼容,文件名禁止使用中文和空格



这条也可以写到项目管理的军规中去

论坛徽章:
0
5 [报告]
发表于 2013-04-09 20:49 |只看该作者
悲剧,这个问题几个月了都没解决
现在已经换回VC了

不过QT确实挺好用的,就是有2个问题,一是资料太少;二是发行包太大

论坛徽章:
0
6 [报告]
发表于 2013-07-09 15:30 |只看该作者
这个还是你的libcur库没有链接成功

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:53:17
7 [报告]
发表于 2013-07-10 09:20 |只看该作者

LIBS += -L F:/Source/curl-7.28.0/lib -DCURL_STATICLIB -lcurl -lws2_32 -lwldap32
SOURCES += main.cpp

工程文件这一句有问题。gcc的-L指定库目录后面的F:/... 之间不能空格。另外一般不在libs加宏定义。

试着这样写:
DEFINES += CURL_STATICLIB
LIBS += -L"F:/Source/curl-7.28.0/lib" -lcurl -lws2_32 -lwldap32
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP