如何构建cURL并在Code :: Blocks项目中使用它(静态) [英] How to Build cURL and use it in a Code::Blocks project (static)
问题描述
我知道有很多话题,但没有一个帮助我解决我的问题。所有我想要的是在 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):(。 $ 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):(。 $ 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):(。 $ 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):(。 $ 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: MSYS1.0.11 。
- 我将使用Mingw: Mingw 4.8.1-rev5.7-sjlj-posix-threads
- 我将构建Curl: Curl-7.39.0 。
入门:
启动MSYS安装。选择任何你喜欢的安装文件夹。当命令行窗口弹出时,回答如下:
预设置:
现在您已经安装了命令行工具make并且与您的gcc / g ++ / mingw兼容。
在运行命令之前,您需要知道的事情:
-
如果使用32位gcc / g ++,请更改为:
-build = i686-pc-mingw32
。 -
如果使用64位gcc / g ++, 如果使用SSL,请更改
- 如果使用SSL,请更改
without-ssl 至- build = x86_64-w64-mingw32 - 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-folder to include,bin to 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.
- I'll be using MSYS: MSYS1.0.11.
- I'll be using Mingw: Mingw 4.8.1-rev5.7-sjlj-posix-threads
- I'll be building Curl: Curl-7.39.0.
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屋!