多层次lib依赖 解决方案
* 使用libcurl
宏: 如果使用静态须定义CURL_STATICLIB
库: libcurl.lib ws2_32.lib wldap32.lib
头文件: easy.h/multi.h等。
* (解决方案)静态lib多层次的依赖:(A依赖B ,B依赖C)
一般来说,B不必指定依赖的C,只需包含用到的类所在的头文件即可,而C直接在A里面指定即可。
成功案例:
FreeSquare本身是一个dll工程(动态库),依赖于Scan_Fix功能库(静态lib库),Scan_Fix内部实现则依赖libcurl库(静态lib库)。
Scan_Fix内部的相关设置:
#define CURL_STATICLIB (注意这个东西必须Scan_Fix里面设置,如果在FreeSquare里设置的话无法解析很多符号)
#include "curl\\multi.h"
FreeSquare内部的相关设置:
工程属性-->通用属性-->添加引用 勾选"Scan_Fix"
工程属性-->链接器-->输入-->添加 ..\\Scan_Fix\\libcurld.lib;ws2_32.lib;wldap32.lib
如果仍然不行,可以通过 #pragma comment(lib,"")放在B的.h文件中,然后在A工程中include进去这个头文件,再工程A 设置属性-->通用属性-->添加引用 B 即可。
此次的错误原因分析:
“无法解析的外部符号” 是因为没有定义CURL_STATICLIB导致的
“无法打开*.lib” 是这个lib不在FreeSquare搜索的路径下导致的

浙公网安备 33010602011771号