C++;:CkSpider.h给出链接器错误 我试图在C++中构建一个网络爬虫。我在代码中使用了CkSpider.h,但它给出了更相似的错误-

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

[链接器错误] 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\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;
            }

        }

    }

}