首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未解析的外部符号"__declspec(dllimport)

未解析的外部符号"__declspec(dllimport)
EN

Stack Overflow用户
提问于 2015-08-09 20:11:46
回答 4查看 9.6K关注 0票数 1

我正试图让libqglviewer在visual中工作,我已经为VS 2012安装了Qt5.2.0 64位。

我在项目设置中添加了用于QGLViewer和QT的包含目录,以及用于qt的lib目录和lib文件(同时发布和调试)。

我有一个简单的示例代码来测试它:

代码语言:javascript
复制
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;
};

当我试图编译它时,我得到

代码语言:javascript
复制
 main.obj : error LNK2001: unresolved external symbol "_declspec(dllimport) public: virtual class QString __cdecl QGLViewer::mouseBindingsString(void)const " (__imp_?mouseBindingsString@QGLViewer@@UEBA?AVQString@@XZ)

他们很多。我环顾了四周,但我不明白这是什么错误。

如果我注释掉了除QApplication(argc,argv)之外的所有内容,它就会编译,但是如果我取消注释查看器,我会得到很多错误。我看不出缺少什么,因为它只在我使用QApplication时编译。

感觉好像链接中缺少了一些东西,但是我已经添加了我能找到的所有.lib文件。

有一件事是,如果我下载libQGLViewer并运行以下代码

代码语言:javascript
复制
qmake -t vclib QGLViewer.pro -spec win32-msvc2013

然后在Visual 2013中打开它(我今天更改了,但没有成功),它按照libQGLViewers主页上的指示构建并生成QGLViewer2.dll文件。但是,如果我尝试simpleViewer的例子,它会再次给出同样的问题。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-10 21:01:16

编辑:

通过重新安装所有的qt和qt studio外接程序,出于某种原因,外接程序搜索到了qt的旧版本,当它被修复时,我可以从libQGLViewer打开一个示例,immitate所有的包含和链接,我终于可以让它工作。

票数 1
EN

Stack Overflow用户

发布于 2017-05-04 18:43:56

Qtv5.7也有同样的错误。通过添加

代码语言:javascript
复制
QT += widgets

在顶部的.pro文件中。

票数 2
EN

Stack Overflow用户

发布于 2015-08-10 14:01:46

你的链接器出错了。常见原因是:编译器找不到dll的.lib文件。您用不同的编译器构建了程序和dll,名称mangling使得在.lib文件中找不到函数。

尝试将he QGLViewer项目添加到QCreator中的项目中,然后右键单击您的项目,选择‘adding’选择内部和引用QGLviewer,然后您的意志将一起编译、避免和命名mnlging问题,QCreator应该负责库路径等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31908399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档