0 / 0 / 0
Регистрация: 17.07.2013
Сообщений: 7
|
|
1 | |
Ошибка LNK201917.07.2013, 18:22. Показов 2481. Ответов 25
Метки нет (Все метки)
Создается библиотека D:\EWIL\EWIL(Old)\EWIL\scr\map editor\Debug\Map Editor.lib и объект D:\EWIL\EWIL(Old)\EWIL\scr\map editor\Debug\Map Editor.exp
4>EditorApp.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall TSkyBox::~TSkyBox(void)" (??1TSkyBox@@UAE@XZ) в функции __unwindfunclet$??0EditorApp@@QAE@XZ$0 4>EditorApp.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall TSkyBox::TSkyBox(void)" (??0TSkyBox@@QAE@XZ) в функции "public: __thiscall EditorApp::EditorApp(void)" (??0EditorApp@@QAE@XZ) 4>EditorApp.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall TSkyBox:rawTheSkybox(void)" (?DrawTheSkybox@TSkyBox@@QAEXXZ) в функции "public: virtual void __stdcall EditorApp::CreateSky(void)" (?CreateSky@EditorApp@@UAGXXZ) 4>EditorApp.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: long __thiscall TSkyBox::CreateSkyBox(void)" (?CreateSkyBox@TSkyBox@@QAEJXZ) в функции "public: virtual void __stdcall EditorApp::CreateSky(void)" (?CreateSky@EditorApp@@UAGXXZ) 4>D:\EWIL\EWIL(Old)\EWIL\scr\map editor\Debug\Map Editor.exe : fatal error LNK1120: 4 неразрешенных внешних элементов как я понял он не видит методы описанные в ewil_skybox.cpp они засовываются в ewild.lib, подключение есть в проекте, вопрос: Почему он не видит методы если они описаны в cpp и если они объявленны как пустые () в классе, грубо говоря определение внутри класса нужно, но это извращением мне кажется. Связь между проектами идёт так EWIL ->Map Editor, нет ли ещё проблемы в том, что функции EWIL выгружаются в dll и в lib одновременно? з.ы. MVS 2010 Professional Добавлено через 11 часов 38 минут Дополню что до включения обращений к методам описанным в файле TSkyBox.cpp и объявления связи с классом TSkyBox всё проходит нормально. Добавлено через 2 минуты Как понимаю помочь никто не может?!
0
|
17.07.2013, 18:22 | |
Ответы с готовыми решениями:
25
Ошибка 2 error LNK2019, не пойму в чем ошибка ошибка LNK2019 Ошибка LNK2019 Ошибка LNK2019 |
17.07.2013, 18:32 | 2 | |||||
Всмысле они нигде не определяются? Пустой метод должен выглядеть так
0
|
0 / 0 / 0
Регистрация: 17.07.2013
Сообщений: 7
|
|||||||||||
17.07.2013, 19:12 [ТС] | 3 | ||||||||||
Добавлено через 7 минут дополню что связь вызовов идёт из разных проектов, между собой подключены все lib, то есть проблемы упирается в реализацию методов, они у меня описываются в TSkyBox.cpp проект EWIL, а я пытаюсь вызвать эти методы, в AppEditor.cpp он находится в проекте Map Editor, если переношу реализацию конструктора в сам класс, то проблема с первыми двумя ошибками его вызова TSkyBox уходит, но остаются ещё две ошибки, вот и хочу понять почему такое поведение Добавлено через 19 минут прочитай пост выше Добавлено через 2 минуты решил как ты сказал попробовать выдал ошибку, что метод уже определён, попробовал виртуальной сделать та же хрень
0
|
0 / 0 / 0
Регистрация: 17.07.2013
Сообщений: 7
|
|
03.08.2013, 05:57 [ТС] | 4 |
тема закрыта, нашёл в чём проблема уже давно
0
|
2 / 2 / 1
Регистрация: 17.04.2013
Сообщений: 68
|
|
03.08.2013, 22:03 | 5 |
и в чем жэ решэние? У меня похожая проблема была и до сих пор не могу понять в чем прикол. Пути к хидерам прописал в свойствах, и ничего не помогло. Ти как решылсвою проблему?
0
|
0 / 0 / 0
Регистрация: 17.07.2013
Сообщений: 7
|
|
04.08.2013, 04:03 [ТС] | 6 |
Суть проблемы заключается в том, что если ты выгружаешь операторы в Dll то нужно объявление __dclcpec вроде, если ты пытаешь обратиться к классу с расширением типа extern MyClass TClass находящийся в заголовочнике, то он не увидит в cpp. Решается всё через подключения lib. Свойства->Сборщик->Ввод->Дополнительные файлы и каталоги. если проблема с переменной что описал выше с классами, то надо пихать либо в глобальную область либо в пространство имён своё описывать, решение с выгрузкой в dll я сказал. Иногда можно также использовать __stdcall для вынужденного вызова.
0
|
2 / 2 / 1
Регистрация: 17.04.2013
Сообщений: 68
|
|
04.08.2013, 10:08 | 7 |
А если там нет длл а просто проект с функцыями, и при попытке вызвать их в другом проекте кидает такую ошыбку? Тожэ в настройках линковку указать путь к папке проекта?
0
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
|
04.08.2013, 11:39 | 8 |
Тебе нужно добавить файлы к проекту в самой студии, иначе линковщик будет их считать левой фигней.
0
|
2 / 2 / 1
Регистрация: 17.04.2013
Сообщений: 68
|
|
04.08.2013, 11:59 | 9 |
Ээээммммм. Вобшем такое дело: есть солюшын с 12 студии, в нем 2 проекти, один главный т.е тот где есть мэйн и второй(в нем только функцыи в стат.либ) при построении кидает такую ошыбку + лнк1120. Хотя все директории прописаны. В чем можэт быть дело?4 день мотаюсь и ничего, форуму все облазил, здесь тож писал....
0
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
|
04.08.2013, 12:15 | 10 |
Вкладывал через настройки проекта или через #pragma?
ЗЫ:Попробуй писать абсолютный путь. Добавлено через 8 минут Да, кстате забыл сказать, ьыла у меня тоже проблема с неразрешенными внешними символами, там получилось так, что было две функции в разных классах, но назывались одинаково, в конце концов оказалось, что при очерездом вызове функции забыл впилить указатель на класс, проверь, может и у тебя такая же ошибка.
0
|
2 / 2 / 1
Регистрация: 17.04.2013
Сообщений: 68
|
|
04.08.2013, 12:28 | 11 |
Через настройки проекта. Абсолютний путь - тоесть писать #инклуд с:/блабла бла?
Добавлено через 12 минут Там только одна функцыя без классов
0
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
||||||
04.08.2013, 12:33 | 12 | |||||
ты писал:
под названием статическая библиотека подразумевается расширение *.lib, или я что-то не понимаю?
далее ты писал: Но ведь статические библиотеки вкладываются через:
0
|
2 / 2 / 1
Регистрация: 17.04.2013
Сообщений: 68
|
|
04.08.2013, 12:47 | 13 |
Я не такой профи. .lib должна появитса со второго проекта, и быть использована в первом. И в настройках проекта можна выбрать директории с которых они будут подключатса.... Если есть 12 студия могу кинуть проект, так проще будет.
0
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
|
04.08.2013, 12:49 | 14 |
0
|
2 / 2 / 1
Регистрация: 17.04.2013
Сообщений: 68
|
|
04.08.2013, 13:03 | 15 |
0
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
|
04.08.2013, 13:16 | 16 |
1
|
2 / 2 / 1
Регистрация: 17.04.2013
Сообщений: 68
|
|
04.08.2013, 14:02 | 17 |
Все заработало. Пасиб еще раз. Но еще один маленький вопрос: почему нальзя просто подключить хидер с другого проекта?
Там еще можно создать один хидер, в нем заинклудить срр файл и потом смело мож инклудить этот хидер тогда все тип топ, но все же...
0
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
|
04.08.2013, 14:10 | 18 |
Давай рассуждать логически:
Есть файл: Test.cpp, в котором описана функция из подключенного к нему header'а. Идем далее... Мы подключаем в совершенно левом файле header нашего Test.cpp, в котором не содержится никакого описания нужной нам функции... Далее думай сам...
0
|
2 / 2 / 1
Регистрация: 17.04.2013
Сообщений: 68
|
|
04.08.2013, 15:43 | 19 |
Понятно) и последние(а то скоро офф-топ начньотса) если у меня в солюшэне много проектов(либ всяких и т.д.) и один главный(которий все это будет использовать) то как сделать так что б в нем юзались .lib & dll с других проектов без включение в него срр, тоесть дать хидер либы и использовать готовою либу
0
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
||||||
04.08.2013, 19:23 | 20 | |||||
Если честно, не совсем понял, но вроде ты про это:
В начале(там где #includ'ы) пишешь следующее:
0
|
04.08.2013, 19:23 | |
04.08.2013, 19:23 | |
Помогаю со студенческими работами здесь
20
LNK2019 ошибка Ошибка LNK2019 Ошибка LNK2019 Ошибка LNK2019 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |