Russian Qt Forum
Ноябрь 26, 2024, 17:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Каждый раз одни и те же грабли. Объясните раз и на всегда. ERROR: LNK 2019  (Прочитано 2261 раз)
Hrundel
Гость
« : Январь 17, 2014, 23:42 »

Люди, дорогие,

объясните раз и на всегда как избегать такой ошибки. Очень часто получаю такую хрень:

Код:
LNK2019: unresolved external symbol __imp__glewInit@0 referenced in function "protected: virtual void __thiscall GLViewPort::initializeGL(void)" (?initializeGL@GLViewPort@@MAEXXZ)

Причем проект только начал.
Поместил в проект библиотеку "glew"
подключил заголовок, вызвал функцию, ошибка LNK 2019

Я так подозреваю он хочет библиотеку (lib)

В *.pro файле ничего не пишу, так как не знаю, что надо прописать.
Объясните пожалуйста как нужно правильно подключать библиотеки, чтобы так не париться каждый раз.
А то всегда каким-то чудом нахожу решения, а потом сам не понимаю почему работает.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Январь 17, 2014, 23:51 »

LIBS += -l<имя/путь файла с расширением lib>
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Hrundel
Гость
« Ответ #2 : Январь 18, 2014, 00:23 »

Упала с кодом -1073741515!!!

Цитировать
The program has unexpectedly finished.
... exited with code -1073741515

Код:
LNK4099: PDB 'vc90.pdb' was not found with 'c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\lib\qtmaind.lib' or at 'F:\Qt\OPEN_GL_3D_ENGINE\OGL3DEngine-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2008__Qt_SDK__Debug\debug\vc90.pdb'; linking object as if no debug info

Добавил *.dll все заработало. Спасибо!!!
« Последнее редактирование: Январь 18, 2014, 00:49 от Hrundel » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Январь 18, 2014, 01:37 »

Поместил в проект библиотеку "glew"
Что значит поместил? просто положил в каталог с проектом что-то?
подключил заголовок
Правильно, это шаг №2

Правильная последовательность:
1) Добавить в проект библиотеку, в pro-файл добавить:
INCLUDEPATH += path/to/library/include
LIBS += -lname // можно без расширения, qmake сам его подставляет в зависимости от платформы.
LIBS += -Lpath/to/library // либо до .lib, либо до .a

2) Добавить в исходный код заколовочный(-ые) файл(ы) одним из следующих способов:
a) если в п.1 path/to/library/include содержит подкаталоге (как например Qt), то
Код
C++ (Qt)
#include <SubPath/Header> // где Header - собственно имя файла
b) если подкаталогов нет и все заголовочники лежат в path/to/library/include, то
Код
C++ (Qt)
#include <Header>
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.232 секунд. Запросов: 23.