libcurl的源码,编译为静态链接库出现的问题

libcurl的源码,编译为静态链接库出现的问题如下图所示:

解决方案:

具体步骤就是:

1、给工程添加依赖的库:项目->属性->链接器->输入->附加依赖项,把libcurl.lib ws2_32.lib winmm.lib wldap32.lib添加进去

注意,debug配置用libcurld.lib

2、加入预编译选项:项目->属性->c/c++ ->预处理器->预处理器,把  ;BUILDING_LIBCURL;HTTP_ONLY复制进去(注意不要丢了";")

时间: 2024-10-19 22:41:13

libcurl的源码,编译为静态链接库出现的问题的相关文章

静态编译、动态编译、静态链接库和动态链接库理解

1.静态编译:编译器在编译可执行文件时,把需要用到的对应动态链接库(.so或.ilb)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行时不需要依赖于动态链接库. 2.动态编译: 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令.所以其优点一 方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源.缺点一是哪怕是很简单的程序,只用到了链接 库中的一两条命令,也需要附带一个相对庞大的链接库:二是如果其他计算机上没有安装对应的运行库,

源码编译opencv的安卓Android库

因为项目需要,稍微改了opencv一点源码,这个时候就需要源码编译opencv的库了.我pc机器上面试了没有问题,但是我们项目是跑在移动设备安卓上面的,算法通过jni打包接口供上层java调用,opencv用的安卓版本的,这就坑爹了,没办法,我就编译安卓版本的opencv吧,这里面的坑真多. 参考链接: https://www.jianshu.com/p/925614d6e9e0 OpenCV3.4源码交叉编译android库 https://blog.csdn.net/Martin_chen2

GCC 编译过程和链接库

GCC 加工程序的过程 在Linux下进行C语言编程,必然要采用GNU GCC来编译C源代码生成可执行程序. 一.GCC使用 Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件] 其中,目标文件可缺省,Gcc默认生成可执行的文件名为:a.out 我们来看一下经典入门程序"Hello World!" # vi  main.c #include <stdio.h> void main () { printf("hello world!\n&q

使用libcurl源码编译不过的问题

curl 7.21.6 + vs2005 就把curl的.c文件加到工程中编译,报错信息很古怪: setup_once.h(274) : error C2628: '<unnamed-tag>' followed by 'bool' is illegal (did you forget a ';'?) 后来试了多次,发现在不包含"curl.h"的情况下,并且把curl的*.c文件从工程文件中移出后,仍然报错, 只有把工程选项,c/c++,包含路径中去掉curl的路径时候,才

CentOS6.5下搭建LAMP环境(源码编译方式)

CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL) 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP ,WAMP,MAMP等.这里我介绍一下LAMP环境的搭建,即Linux. Apache. MySQL .PHP环境. 一.首先安装操作系统 操作系统:centos6.5 操作系统安装步骤,此处不再详述. 备注:服务器系统采用最小化安装,安装一下GCC编译工具和一个桌面即可.如下图所示: 由于安装系统的时候我是最小化安装,只安装了一

yum源码编译安装http

继上次linux程序包管理(2)之yum的配置及使用,大家都很疑惑不是有yum就行了吗干嘛还要学习源码安装,听说源码安装很费事也很麻烦,是的 yum是用起来简单方便,但是yum是直接写在镜像里面的,所以一些安装包的版本就有点低了.而且有些特性是编译选定的,如果编译未选定此特性,将无法使用:rpm包的版本会落后于源码包,甚至落后很多.俗话说有利必有一弊,对于一些安装包已经更新换代了,大家都在接受新事物你还在原地不动,这对于it农民工来说不合适吧,所以源码安装就解决了这个问题,两者的结合三字棒棒哒.

boost-1.53源码编译

1.下载源码.首先得明白,boost大多数库都只有头文件,链接时不需Lib文件:以下库需要单独编译成库: Boost.Filesystem Boost.GraphParallel Boost.IOStreams Boost.MPI Boost.ProgramOptions Boost.Python Boost.Regex Boost.Serialization Boost.Signals Boost.System Boost.Thread Boost.Wave 下面几种是可选的: Boost.D

CentOS 6.6 下源码编译安装MySQL 5.7.5

版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# yum -y install gcc-c++ ncurses-devel cmake make perl \ gcc autoconf automake zlib libxml libgcrypt libtool bison2. 清理环境检查boost版本: # rpm -qa boost*卸载b

GCC 编译使用动态链接库和静态链接库的方法

1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的,所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有别于静态库,动态库的链接是在程序执行的时候被链接的.所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用. 2 静态库和动态库的比较 链接静态库其实从某种意义上来说也是一种粘贴复制,只不过它操作的对象是目标代码而不是源码而已.因为静态库被链接后库就直接嵌入可执行文件中了,这样就带来了两个问题. 首先就是系统空间被浪费了.