如何构建cURL并在Code :: Blocks项目中使用它(静态) [英] How to Build cURL and use it in a Code::Blocks project (static)

查看:919
本文介绍了如何构建cURL并在Code :: Blocks项目中使用它(静态)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道有很多话题,但没有一个帮助我解决我的问题。所有我想要的是在 Code :: Blocks上使用 cURL static libcurl (无DLL文件)的简单 C ++ - Windows 8 。我花了大约20个小时试图这样做,但我发现的是无用的东西,我不明白的东西。



下载 curl-7.39后。 0.zip http://curl.haxx.se/download.html 并将其解压缩到我的 Code :: Block 目录,我以管理员身份运行 VS2013的开发人员命令提示符,并输入以下内容:

  cd C:\Program Files(x86)\CodeBlocks\curl-7.39.0\winbuild 
nmake / f Makefile.vc mode = static vc = 12 debug = no

第二个命令的输出是: strong> http://pastebin.com/bwPqxp9V



然后我用 Main.cpp 创建了一个新的空的 Code :: Blocks 项目:

  #include< curl / curl.h> 
int main(){curl_global_cleanup(); }

Code :: Blocks 中,我浏览到 Project > Build Options

编译器设置>定义中,我添加了 CURL_STATICLIB

链接器设置>链接库中,我添加了生成的.lib文件的路径(存在):

  .. \..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6 -sspi-winssl\lib\libcurl_a.lib 

链接器设置>其他链接选项,我添加了 -static

搜索目录>编译器

  .. \..\..\..\程序文件(x86)\CodeBlocks\curl-7.39。 0 \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include 

我可能已编辑了一些其他的东西,但没有什么重要的。

当我使用 GNU GCC Compiler 构建时使用以下命令:

  mingw32-g ++。exe -o Debug \MyTestProgram.exe Debug \Main.o -static.. \..\..\。 。\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib

我得到 80个警告

  .drectve`/ DEFAULTLIB:MSVCRT/ DEFAULTLIB:OLDNAMES'unrecognized 

超过 50个错误。我做错了什么,如何解决?

如果需要,请随时询问我更多详情。



错误记录

 。 .\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl \lib \libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\easy.obj):(。text $ mn + 0x7) ||未定义引用`__security_cookie'| 
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\easy.obj):(。text $ mn + 0x44)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\easy.obj):(。 $ mn + 0x64)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x13b)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x151)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。text $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x10d)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0 \builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x295)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x2ac)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x17b)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(。 $ mn + 0x2ea)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(。 $ mn + 0x7)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(。 $ mn + 0x80)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(。 $ mn + 0x41d)||未定义的引用`_imp__strtoll'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(。 $ mn + 0x58f)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(。 $ mn + 0x754)||未定义的引用`_imp__strtoll'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(。 $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(。 $ mn + 0x45)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(。 $ mn + 0x57)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\curl_sspi.obj):(。 $ mn + 0x7)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\curl_sspi.obj):(。 $ mn + 0xca)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\curl_sspi.obj):(。 $ mn + 0xfc)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj): .text $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj): .text $ mn + 0x5a)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj): .text $ mn + 0x91)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj): .text $ mn + 0x12e)||未定义的引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj): .text $ mn + 0x198)||未定义引用`@__ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj): .text $ mn + 0x1ae)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj): .text $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj): .text $ mn + 0xaa)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x88)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x7)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x178)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x42)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0 \builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x7b)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(。 $ mn + 0x8e)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。 $ mn + 0x7)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。text $ mn + 0x12c)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。 $ mn + 0x7)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。 $ mn + 0xd5)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。text $ mn + 0x115)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。 $ mn + 0x4)||未定义的引用`__security_cookie'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。 $ mn + 0xa4)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。 $ mn + 0x1c6)||未定义引用`@ _ security_check_cookie @ 4'|
..\..\..\..\Program Files(x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static- ipv6-sspi-winssl\lib\libcurl_a.lib(.. \builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(。 $ mn + 0x216)||未定义引用`@ _ security_check_cookie @ 4'|
||更多错误,但没有显示


解决方案

简介:



要在Windows上使用gcc构建libcurl,您需要一个命令行工具。你可以使用Git-Bash或MSYS。你的选择。








使用入门:



启动MSYS安装。选择任何您喜欢的安装文件夹。当命令行窗口弹出时,回答如下:








PRE-SETUP:



现在您已安装了命令行工具make,并且与您的gcc / g ++ / mingw兼容。



在运行命令之前,您需要知道的事情:




  • 如果使用32位gcc / g ++,请更改为: -build = i686-pc-mingw32


  • 如果使用64位gcc / g ++, 如果使用SSL,请更改 - 如果使用SSL,请更改 - build = x86_64-w64-mingw32 without-ssl - with-ssl 并添加 -DOPENSSL_PATH = Path_To_Open_SSL_Here 。 / p>


  • 如果需要为ZLIB指定特殊路径,请添加 -DZLIB_PATH = Path_To_ZLib_Here p>


  • 如果您要建立STATIC,请使用 - disable-shared ,否则不要使用 - enable-shared







配置:



打开MSYS.bat并运行以下命令(根据需要修改,如上所述):

  $ cdC:/Users/USERNAME/Desktop/curl-7.39.0

$ ./configure --prefix = / usr / local --without-ssl --disable-shared --build = x86_64-w64-mingw32 CPPFLAGS = - I / usr / local / includeLDFLAGS = - L / usr / local / lib

它应该开始做一堆检查。这将需要一段时间,所以去得到一杯咖啡或东西。如果一切正常,并且配置完成,并且所有设置都正确,那么您应该看到以下内容:








安装:



最后,运行以下命令:

  $ make安装条

它现在应该开始构建,它将安装到(无论你的MSYS安装 - Mine C:/ Msys ):

  C:/ Msys / 1.0 / local / bin 
C:/Msys/1.0/local/include
C:/Msys/1.0/local/lib

这些位置应该包含您使用libcurl与gcc / g ++ / mingw所需的所有文件。



好吧,它看起来像:






可选:




  • 您可以在该位置链接

  • 您可以将include,lib和bin中的文件分别复制到您的mingw安装文件夹中(include + curl-文件夹, bin,lib + package-folder到lib)。


I know there are many topics about this but none of them helped me to solve my problem. All I want is to make a simple C++ program that uses cURL with static libcurl (without DLL files) on Code::Blocks - Windows 8. I've spent around 20 hours trying to do this but all I found is unuseful stuff and stuff I don't understand.

After downloading curl-7.39.0.zip from http://curl.haxx.se/download.html and extracting it to my Code::Block directory, I ran Developer Command Prompt for VS2013 as Administrator and entered the following:

cd C:\Program Files (x86)\CodeBlocks\curl-7.39.0\winbuild
nmake /f Makefile.vc mode=static vc=12 debug=no

The output of the second command was: http://pastebin.com/bwPqxp9V

Then I made a new empty Code::Blocks project with Main.cpp:

#include <curl/curl.h>
int main() { curl_global_cleanup(); }

In Code::Blocks, I navigated to Project > Build Options
In Compiler Settings > Defines, I added CURL_STATICLIB
In Linker Settings > Link Libraries, I added the path of the .lib file generated (which exists):

..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib

In Linker Settings > Other Link Options, I added -static
In Search Directories > Compiler, I added:

..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include

I may have edited some other stuff, but nothing important.
When I build using GNU GCC Compiler with the following command:

mingw32-g++.exe  -o Debug\MyTestProgram.exe Debug\Main.o  -static  "..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib"

I get 80 warnings similar to:

.drectve `/DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES" ' unrecognized

And more than 50 errors. What I did wrong and how can I fix it?
Feel free to ask me for more details if needed.

Error log:

..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\easy.obj):(.text$mn+0x7)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\easy.obj):(.text$mn+0x44)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\easy.obj):(.text$mn+0x64)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x13b)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x151)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x10d)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x295)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x2ac)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x17b)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\multi.obj):(.text$mn+0x2ea)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(.text$mn+0x7)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(.text$mn+0x80)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(.text$mn+0x41d)||undefined reference to `_imp__strtoll'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(.text$mn+0x58f)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(.text$mn+0x754)||undefined reference to `_imp__strtoll'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(.text$mn+0x45)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\cookie.obj):(.text$mn+0x57)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\curl_sspi.obj):(.text$mn+0x7)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\curl_sspi.obj):(.text$mn+0xca)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\curl_sspi.obj):(.text$mn+0xfc)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj):(.text$mn+0x5a)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj):(.text$mn+0x91)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj):(.text$mn+0x12e)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj):(.text$mn+0x198)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj):(.text$mn+0x1ae)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\asyn-thread.obj):(.text$mn+0xaa)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x88)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x7)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x178)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x42)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x7b)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\hostip.obj):(.text$mn+0x8e)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0x7)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0x12c)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0x7)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0xd5)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0x115)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0x4)||undefined reference to `__security_cookie'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0xa4)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0x1c6)||undefined reference to `@__security_check_cookie@4'|
..\..\..\..\Program Files (x86)\CodeBlocks\curl-7.39.0\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib(..\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib\url.obj):(.text$mn+0x216)||undefined reference to `@__security_check_cookie@4'|
||More errors follow but not being shown.|

解决方案

Intro:

To build libcurl with gcc on windows, you need a command line tool. You may use Git-Bash or MSYS. Your choice.


Getting Started:

Start the MSYS installation. Choose whatever folder you like for the installation. When the command-line window pops up, answer as follows:


PRE-SETUP:

Now you have a command-line tool "make" installed and is compatible with your gcc/g++/mingw.

BEFORE we run the commands, there's a few things you need to know:

  • If using 32-bit gcc/g++ then change to: --build=i686-pc-mingw32.

  • If using 64-bit gcc/g++ then change to: --build=x86_64-w64-mingw32.

  • If using SSL, change --without-ssl to --with-ssl and add -DOPENSSL_PATH=Path_To_Open_SSL_Here.

  • If you need to specify a special path to your ZLIB then add -DZLIB_PATH=Path_To_ZLib_Here.

  • If you want to build STATIC then use --disable-shared otherwise don't use it OR use --enable-shared.


Configuration:

Open MSYS.bat and run the following commands (modify as needed and described above):

$ cd "C:/Users/USERNAME/Desktop/curl-7.39.0"

$ ./configure --prefix=/usr/local --without-ssl --disable-shared --build=x86_64-w64-mingw32 CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

It should start doing a bunch of "checks". It will take a while so go get a coffee or something. If all is well and the configuration is complete, and you have everything setup correctly, then you should see the following:


Building & Installing:

Finally, run the following commands:

$ make install-strip

It should now start building and it will install to (Wherever your MSYS installation is -- Mine is C:/Msys):

 C:/Msys/1.0/local/bin
 C:/Msys/1.0/local/include
 C:/Msys/1.0/local/lib

Those locations should have all the files necessary for you to use libcurl with gcc/g++/mingw.

If all went well, it will look like:


OPTIONAL:

  • You may either link to them in that location or move them.
  • You can copy the files in "include", "lib" and "bin", into your mingw installation folder respectively (include + curl-folder to include, bin to bin, lib + package-folder to lib).

这篇关于如何构建cURL并在Code :: Blocks项目中使用它(静态)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆