Ошибка компоновщика C ++ LNK2019 - PullRequest
1 голос
/ 15 марта 2012

Я сталкиваюсь с проблемой LNK2019, когда я компилирую свой проект в Visual Studio 2010. Кто-нибудь может мне помочь? Спасибо.

gspan.obj: ошибка LNK2019: public: class std :: vector, класс std :: allocator>, класс std :: allocator, класс std :: allocator>>> __thiscall gSpan :: tokenize (класс std :: basic_string, класс std :: allocator>) "(? tokenize @ gSpan @@ QAE? AV? $ vector @ V? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ станд @@ V? $ распределитель @ V? $ basic_string @ DU? $ char_traits @ D @ станд @@ V? $ распределитель @ D @ 2 @@ станд @@@ 2 @@ станд @@ V? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ 3 @@ Z) private private "private: void __thiscall gSpan :: read (класс std :: basic_string, класс std :: allocator>) "(? read @ gSpan @@ AAEXV? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@@ Z) 中 被 參考

C: \ Users \ cool \ documents \ visual studio 2010 \ Projects \ OGSPAN \ Debug \ OGSPAN.exe: фатальная ошибка LNK1120: 1 100 無法 解析 的 外部 符號

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Пожалуйста, проверьте исходный код, метод gSpan::tokenize не реализован.Это называется в gSpan::read.Кстати, gSpan::is_min тоже не реализовано.

Вы можете использовать dumpbin.exe для проверки сгенерированного gspan.obj.Все остальные gSpan:: методы определены в SECT?? (где ?? - это две шестнадцатеричные цифры, я думаю), тогда как gSpan::tokenize и gSpan::is_min - это UNDEF.

Чтобы воссоздать ошибку,используйте этот код:

class a {
public:
    void func1(void);
    void func2(void);
};

void a::func1(void)
{
    func2();
}

int _tmain(int argc, _TCHAR* argv[])
{
    a b;
    b.func1();
    return 0;
}
1 голос
/ 15 марта 2012

LNK2019 означает, что один из ваших объектных файлов ссылается на символ (имя функции или переменной), который не определен ни в одном из них.Часто это означает, что вы объявили и вызвали функцию, но на самом деле забыли ее реализовать.

...