前言
源代码
为什么要写这篇文章?
最近想着用C++实现一个爬虫,帮助我下载一些图片,C++没有像python那样方便的request、beautifulsoup等库,搜了不少资料,大多数使用了urlmon这个库,同样大多数的教程是这样实现的:
#include<Windows.h> //头文件
#pragma comment(lib,"Urlmon.lib") //链接包含该函数的静态库
不过,我使用的IDE是Code Blocks,压根儿就不认这个,总报错,为啥呢?
笔者使用的Code Blocks配置的是gcc编译器,gcc编译器是Linux系统下的C语言编译器,而VC、VS是Windows系统下的。
Linux 下的静态链接库是以.a结尾的二进制文件,它作为程序的一个模块,在链接期间被组合到程序中。和静态链接库相对的是动态链接库(.so文件),它在程序运行阶段被加载进内存。
Linux 下静态链接库文件的命名规则为:
libxxx.a
xxx 表示库的名字。例如,libc.a、libm.a、libieee.a、libgcc.a 都是 Linux 系统自带的静态库。
使用静态链接库时:
除了需要库文件本身,还需要对应的头文件:库文件包含了真正的函数代码,也即函数定义部分;头文件包含了函数的调用方法,也即函数声明部分。
所以说,上面那些代码是针对VC,VS编译器而言的,gcc不能这样使用,这篇文章写的还算不错,可以参考。
另外,在本例中,我们需要urlmon的静态库ÿ