首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有外部库的QtCreator LNK2019错误

带有外部库的QtCreator LNK2019错误
EN

Stack Overflow用户
提问于 2015-08-10 12:39:46
回答 1查看 2.6K关注 0票数 1

当我想将库链接到我的Qt项目时,我遇到了问题。当我试图在Qt中包含一个外部库(libnodave.lib)并试图构建它时,会发生以下错误。

main.obj:-1: Fehler: LNK2019: unresolved external symbol __imp_daveSetDebug referenced in function main

我很确定我在我的项目和.pro文件中包含了所有需要的文件。我使用“添加库”向导来添加库。在没有成功之后,我用Visual创建了一个最小的示例。当我将所有需要的文件都包含到VS项目中时,我可以构建并运行它,而不会出现错误。因此,我认为连接库一定有问题。我也尝试了Qt-外接程序,但是在那里也会发生同样的错误。

这里是我想要包含的库中的最小示例。

在Visual示例中,我将库路径、包含路径和库名添加到项目属性中。它起作用了。

我希望你能帮我解决问题。

编辑:

我想使用这个库从S7-300SPS设备中获取一些数据。

下面的代码是Qt的最小示例。

代码语言:javascript
复制
#include <QCoreApplication>
#include <QDebug>
#include <nodave.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    daveInterface *di;
    daveSetDebug(daveDebugConnect); // Function of libnodave Library
    qDebug() << "Hello World";

    return a.exec();
}

这是Visual最小示例中的全部代码。

代码语言:javascript
复制
#include "stdafx.h"
#include <nodave.h>


int _tmain(int argc, _TCHAR* argv[])
{
    daveInterface *di;
    daveSetDebug(daveDebugConnect);
    printf("Hello World\n");

    return 0;
}

代码很小,所以我认为里面没有错误。这就是为什么我认为这一定是Qt链接器之类的问题。

编辑:

我的.pro文件。

代码语言:javascript
复制
QT       += core
QT       -= gui

TARGET = qtminimal
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app   
SOURCES += main.cpp

win32: LIBS += -L$$PWD/../libnodave-0.8.5/win/ -llibnodave

INCLUDEPATH += $$PWD/../libnodave-0.8.5
DEPENDPATH += $$PWD/../libnodave-0.8.5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-11 13:01:14

问题是Qt项目是64位,而我想要包含的库只有32位。所以我下载了32位版本的Qt,现在它可以工作了。我发现了一个错误,当我尝试用libnodave构建最小的示例时,没有任何64位的Qt库。

通过在VS2013中创建一个新的Qt项目,使用解决方案,然后添加libnodave库,我可以更改它应该是64位构建还是32位构建。通过选择32位构建,Qt库会创建错误,而不是libnodave。当我选择64位构建时,只有libnodave会创建错误。

我希望这对其他人有用。

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

https://stackoverflow.com/questions/31919835

复制
相关文章

相似问题

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