Member 13922009 Ответов: 2

У меня ошибка lnk2019: неразрешенных внешних символ.


1>RobotModel.obj : error LNK2019: unresolved external symbol "public: double __thiscall CRobotModel::get_timeseries_derivative(double,double,double,double)" (?get_timeseries_derivative@CRobotModel@@QAENNNNN@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: class CMatrix3 __thiscall CRobotModel::get_rot(int,double)" (?get_rot@CRobotModel@@QAE?AVCMatrix3@@HN@Z) referenced in function "public: void __thiscall CRobotModel::initRobotR(void)" (?initRobotR@CRobotModel@@QAEXXZ)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: class CMatrix4 __thiscall CRobotModel::get_xyzp_i(class CVector3 * const,class CVector3,class CMatrix3,class CVector3)" (?get_xyzp_i@CRobotModel@@QAE?AVCMatrix4@@QAVCVector3@@V3@VCMatrix3@@1@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: class CMatrix3 __thiscall CRobotModel::get_d_xyz(int,class CVector3 (* const)[3],class CVector3 * const,double * const)" (?get_d_xyz@CRobotModel@@QAE?AVCMatrix3@@HQAY02VCVector3@@QAV3@QAN@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: class CVector3 __thiscall CRobotModel::get_d_p_i_from_xyz_prev(class CVector3,class CVector3,class CVector3 * const)" (?get_d_p_i_from_xyz_prev@CRobotModel@@QAE?AVCVector3@@V2@0QAV2@@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: class CVector3 __thiscall CRobotModel::get_w_i(int,class CVector3 * const,double * const)" (?get_w_i@CRobotModel@@QAE?AVCVector3@@HQAV2@QAN@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: class CVector3 __thiscall CRobotModel::get_d_q_i(class CVector3,class CVector3)" (?get_d_q_i@CRobotModel@@QAE?AVCVector3@@V2@0@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: class CVector3 __thiscall CRobotModel::get_dd_p_i(class CVector3,class CVector3,class CVector3,class CVector3,class CVector3 * const)" (?get_dd_p_i@CRobotModel@@QAE?AVCVector3@@V2@000QAV2@@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: double __thiscall CRobotModel::get_dd_th(double,double,double,double)" (?get_dd_th@CRobotModel@@QAENNNNN@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>RobotModel.obj : error LNK2019: unresolved external symbol "public: class CVector3 __thiscall CRobotModel::get_d_w_i(class CVector3,class CVector3,double,class CVector3,double)" (?get_d_w_i@CRobotModel@@QAE?AVCVector3@@V2@0N0N@Z) referenced in function "public: void __thiscall CRobotModel::moveRobot(double * const)" (?moveRobot@CRobotModel@@QAEXQAN@Z)
1>C:\Users\ulfa\Documents\Visual Studio 2012\Projects\dlggl_base 2 (RobotGA)\dlggl_base 2\Debug\DlgGL_Base.exe : fatal error LNK1120: 10 unresolved externals
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========


Что я уже пробовал:

Я попробовал несколько способов решить эту проблему с помощью ключевого слова error LNK2019, но это не решило мою ошибку. Итак, в этом случае, когда я дважды щелкнул по ошибке, она не привела меня к ошибке. Кто-нибудь знает, как решить эту проблему?

Richard MacCutchan

Вы забыли добавить число.lib-файл в настройках компоновщика.

2 Ответов

Рейтинг:
1

Jochen Arndt

Вы должны связать свое приложение с объектными файлами или библиотеками, содержащими эти символы из CRobotModel класс.

Если они содержатся в исходных файлах, добавьте их в проект, чтобы соответствующие объектные файлы были созданы путем их компиляции в процессе сборки.

Если они находятся в библиотеке (имя.dll и name.lib), добавьте библиотеку в настройки вашего проекта в разделе Компоновщик (дополнительные зависимости) или с помощью

#pragma comment(lib, "path_to_library_file")

поверх одного из ваших исходных файлов.


Рейтинг:
1

KarstenK

Сообщение-это истина для компоновщика. В нем отсутствует код.
Поэтому вы должны добавить RobotModel.cpp для вас проект per "Add existing file...".

Или вы еще не написали файл с кодом, а только создали заголовок? Затем вы должны создать этот файл с пустыми функциями и добавить его.