2015-08-09 3 views
0

Я пытаюсь получить libqglviewer работать в визуальной студии, я установил Qt5.2.0 64-бит для VS 2012неразрешенный внешний символ «__declspec (DllImport)

Я добавил включают в себя каталоги для QGLViewer и QT . в настройках проекта вместе с Lib-каталог и Lib-файлы для Qt (как Release и Debug)

у меня есть простой пример кода, чтобы проверить его:

main.cpp 
#include "simpleViewer.h" 
#include <qapplication.h> 

int main(int argc, char** argv) 
{ 
// Read command lines arguments. 
QApplication application(argc,argv); 

// Instantiate the viewer. 
/* Viewer viewer; 


viewer.setWindowTitle("simpleViewer"); 


// Make the viewer window visible on screen. 
viewer.show(); 

// Run main loop. 
return application.exec();*/ 
} 


simpleViewer.h 
#include <QGLViewer/qglviewer.h> 

class Viewer : public QGLViewer 
{ 
protected : 
virtual void draw(); 
virtual void init(); 
virtual QString helpString() const; 
}; 

Когда я пытаюсь скомпилировать я получаю

main.obj : error LNK2001: unresolved external symbol "_declspec(dllimport) public: virtual class QString __cdecl QGLViewer::mouseBindingsString(void)const " ([email protected]@@[email protected]@XZ) 

Многие из них. Я осмотрелся, но я не понимаю, что такое ошибка.

Если я прокомментирую все, кроме QApplication(argc,argv), он компилируется, но если я разорву просмотр зрителя, то получаю много ошибок. Я не вижу, чего не хватает, поскольку он компилируется, когда я использую только QApplication.

Похоже, что что-то отсутствует в ссылке, но я добавил все .lib-файлы, которые я могу найти.

Одна вещь, что если я загружаю libQGLViewer и запустить следующий

qmake -t vclib QGLViewer.pro -spec win32-msvc2013 

, а затем открывает его в Visual Studio 2013 (я изменил сегодня без успеха) он строит и создает файлы QGLViewer2.dll как это следует в соответствии с инструкцией на домашней странице libQGLViewers. Но если я попробую пример simpleViewer, он снова даст те же проблемы.

+0

Возможный дубликат [Что такое неопределенная ссылка/неразрешенная ошибка внешнего символа и как ее исправить?] (Http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved- external-symbol-error-and-how-do-i-fix) –

+0

Я действительно ничего не вижу, что помогает мне. –

+0

Похож на вопрос Qt, поэтому не дублируйте (по крайней мере, на этот вопрос). – hyde

ответ

1

Edit:

При повторной установке всех кварт и кварта Visual Studio надстройка снова, по какой-то причине надстройки искала для старых версий Qt, когда это было зафиксировано, я мог бы открыть пример из libQGLViewer и иммитировать все включает в себя и ссылки, которые я мог бы наконец заставить работать.

0

Вы получаете ошибку компоновщика. Общими причинами являются: Компилятор не может найти .lib-файл для dll. Вы создали программу и dll с другим компилятором, и имя mangling делает невозможным найти функцию в файле .lib.

Попробуйте добавить проект QGLViewer в проект в QCreator, а затем щелкните правой кнопкой мыши по вашему выбору и выберите «добавить libary», выберите внутренний и ссылочный QGLviewer, тогда ваша воля будет компилироваться вместе, избегая проблем с именем mnlging, и QCreator должен позаботиться о lib пути и все.

+0

Да, я установил qt-плагин visual studio и получил его правильно на этот раз и откройте пример проекта как qt-проект в visual studio и смог его скомпилировать. Поэтому я близок к тому, чтобы заставить его работать. –

0

Произошла такая же ошибка при QT v5.7. Разрешил его, добавив

QT += widgets 

в .pro файл наверху.

Смежные вопросы