C++;:CkSpider.h给出链接器错误 我试图在C++中构建一个网络爬虫。我在代码中使用了CkSpider.h,但它给出了更相似的错误-
[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x14): 对C++;:CkSpider.h给出链接器错误 我试图在C++中构建一个网络爬虫。我在代码中使用了CkSpider.h,但它给出了更相似的错误-,c++,gcc,web-crawler,linker-errors,C++,Gcc,Web Crawler,Linker Errors,[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x14): 对CkSpider::CkSpider()的未定义引用[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1f): 对CkStringArray::CkStringArray()'[Linker]的未定义引用 错误] C:\Users\a
CkSpider::CkSpider()的未定义引用[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1f):
对
CkStringArray::CkStringArray()'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x2a):
对CkStringArray::CkStringArray()'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x3d):
对
CkStringArray::put_Unique(bool)'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x50):
对CkStringArray::put_Unique(bool)'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x63):
对
CkStringArray::Append(char const*)”的未定义引用[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x79): 对
CkSpider::AddAvoidOutboundLinkPattern(char)的未定义引用
常量*)“[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x8f):
对
CkSpider::AddAvoidOutboundLinkPattern(char)的未定义引用
常量*)“[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0xa5):
对CkSpider::AddAvoidOutboundLinkPattern(char)的未定义引用
常量*)“[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0xbb):
对
CkSpider::AddAvoidOutboundLinkPattern(char)的未定义引用
常量*)“[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0xd1):
对CkSpider::AddAvoidOutboundLinkPattern(char)的未定义引用
const*)的更多未定义引用
CkSpider::AddAvoidOutboundLinkPattern(char const*)follow[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0xfd): 对
CkSpider::put_CacheDir(char const*)”的未定义引用
[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x113):
未定义对
CkSpider::put_FetchFromCache(bool)”的引用[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x129): 对
CkSpider::put_UpdateCache(bool)'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x139):
对“
CkStringArray::pop()”[链接器错误]的未定义引用
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x151):
对CkSpider::Initialize(char const*)'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x166):
对
CkSpider::getUrlDomain(char const*)”的未定义引用[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x17e): 对
CkSpider::getBaseDomain(char const*)”的未定义引用
[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x18d):
对
CkStringArray::Append(char const*)”的未定义引用[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1a4): 对
CkSpider::CrawlNext()的未定义引用[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1bf):
对
CkSpider::lastUrl()的未定义引用[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1d5):
对CkSpider::get_LastFromCache()'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x1f2):
对
CkSpider::SleepMs(long)“[链接器错误]的未定义引用
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x224):
对CkSpider::getOutboundLink(long)“[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x23c):
对
CkSpider::getUrlDomain(char const*)”的未定义引用[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x254): 对
CkSpider::getBaseDomain(char const*)”的未定义引用
[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x269):
对
CkStringArray::Contains(char const*)”的未定义引用[链接器错误] C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x282): 对
CkStringArray::Append(char const*)”的未定义引用
[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x28d):
对
CkStringArray::get_Count()'[链接器错误]的未定义引用
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x2aa):
对CkSpider::get_NumOutboundLinks()'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x2c7):
对
CkStringArray::get_Count()'[链接器错误]的未定义引用
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x2df):
对CkStringArray::~CkStringArray()'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x2ea):
对
CkStringArray::~CkStringArray()'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x2f8):
对CkSpider::~CkSpider()的未定义引用[链接器错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:webcrawler.cpp:(.text+0x30e):
对
CkStringArray::~CkStringArray()'[Linker]的未定义引用
错误]
C:\Users\amit\AppData\Local\Temp\ccQ5VFW0.o:web
#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;
}
}
}
}