我正在尝试用c ++制作一个网络爬虫。我在我的代码中使用CkSpider.h但是它给出了liker错误 -
[链接错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0×14): 未定义引用
CkSpider::CkSpider()' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1f): undefined reference to
CkStringArray :: CkStringArray()' [链接 错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x2a): 未定义引用CkStringArray::CkStringArray()' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x3d): undefined reference to
CkStringArray :: put_Unique(bool)' [链接 错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+为0x50): 未定义引用CkStringArray::put_Unique(bool)' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x63): undefined reference to
CkStringArray :: Append(char const *)'
[链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ x79的): 未定义引用CkSpider::AddAvoidOutboundLinkPattern(char const*)' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x8f): undefined reference to
CkSpider :: AddAvoidOutboundLinkPattern(char 常量*)' [链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+的0xA5): 未定义引用CkSpider::AddAvoidOutboundLinkPattern(char const*)' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0xbb): undefined reference to
CkSpider :: AddAvoidOutboundLinkPattern(char 常量*)' [链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0xd1): 未定义引用CkSpider::AddAvoidOutboundLinkPattern(char const*)' more undefined references to
CkSpider :: AddAvoidOutboundLinkPattern(char const *)'遵循
[链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0xfd): 未定义引用CkSpider::put_CacheDir(char const*)'
CkSpider :: put_FetchFromCache(bool)'
[Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x113): undefined reference to
[链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x129): 未定义引用CkSpider::put_UpdateCache(bool)' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x139): undefined reference to
CkStringArray :: pop()' [链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x151): 未定义引用CkSpider::Initialize(char const*)' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x166): undefined reference to
CkSpider :: getUrlDomain(char const *)'
[链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x17e): 未定义引用CkSpider::getBaseDomain(char const*)'
CkStringArray :: Append(char const *)'
[Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x18d): undefined reference to
[链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x1a4): 未定义引用CkSpider::CrawlNext()' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1bf): undefined reference to
CkSpider :: lastUrl()' [链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x1d5): 未定义引用CkSpider::get_LastFromCache()' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1f2): undefined reference to
CkSpider :: SleepMs(long)' [链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x224): 未定义引用CkSpider::getOutboundLink(long)' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x23c): undefined reference to
CkSpider :: getUrlDomain(char const *)'
[链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x254): 未定义引用CkSpider::getBaseDomain(char const*)'
CkStringArray :: Contains(char const *)'
[Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x269): undefined reference to
[链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x282): 未定义引用CkStringArray::Append(char const*)'
CkStringArray :: get_Count()' [链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x2aa): 未定义引用
[Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x28d): undefined reference toCkSpider::get_NumOutboundLinks()' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x2c7): undefined reference to
CkStringArray :: get_Count()' [链接器错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x2df): 未定义引用CkStringArray::~CkStringArray()' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x2ea): undefined reference to
CkStringArray ::〜CkStringArray()' [链接 错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+为0x2f8): 未定义引用CkSpider::~CkSpider()' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x30e): undefined reference to
CkStringArray ::〜CkStringArray()' [链接 错误] C:\ Users \用户阿米特\应用程序数据\本地的\ Temp \ ccQ5VFW0.o:webcrawler.cpp :(文字+ 0x31d): 未定义引用CkStringArray::~CkStringArray()' [Linker error] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x32f): undefined reference to
CkSpider ::〜CkSpider()'在功能main': [Linker error] C:\MinGW\msys\1.0\src\mingwrt/../mingw/main.c:73: undefined reference to
WinMain @ 16' ld返回1退出状态
Ckspider库Ckspider.h
的Git链接我的代码 -
#include<windows.h>
#include <CkSpider.h>
#include<stdio.h>
#include<iostream>
#include <CkStringArray.h>
using namespace std;
void ChilkatSample(void)
{
CkSpider spider;
CkStringArray seenDomains;
CkStringArray seedUrls;
seenDomains.put_Unique(true);
seedUrls.put_Unique(true);
seedUrls.Append("http://www.techxxx.org/");
spider.AddAvoidOutboundLinkPattern("*?id=*");
spider.AddAvoidOutboundLinkPattern("*.mypages.*");
spider.AddAvoidOutboundLinkPattern("*.personal.*");
spider.AddAvoidOutboundLinkPattern("*.comcast.*");
spider.AddAvoidOutboundLinkPattern("*.aol.*");
spider.AddAvoidOutboundLinkPattern("*~*");
spider.put_CacheDir("c:/spiderCache/");
spider.put_FetchFromCache(true);
spider.put_UpdateCache(true);
while (seedUrls.get_Count() > 0) {
const char * url;
url = seedUrls.pop();
spider.Initialize(url);
const char * domain;
domain = spider.getUrlDomain(url);
seenDomains.Append(spider.getBaseDomain(domain));
long i;
bool success;
for (i = 0; i <= 4; i++) {
success = spider.CrawlNext();
if (success != true) {
break;
}
printf("%s\n",spider.lastUrl());
if (spider.get_LastFromCache() != true) {
spider.SleepMs(1000);
}
}
for (i = 0; i <= spider.get_NumOutboundLinks() - 1; i++) {
url = spider.getOutboundLink(i);
domain = spider.getUrlDomain(url);
const char * baseDomain;
baseDomain = spider.getBaseDomain(domain);
if (!seenDomains.Contains(baseDomain)) {
seedUrls.Append(url);
}
if (seedUrls.get_Count() > 1000) {
break;
}
}
}
}
帮助。