QtCreator LNK2019与外部库错误

QtCreator LNK2019 error with external library

本文关键字:错误 外部 LNK2019 QtCreator      更新时间:2023-10-16

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

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

我很确定我在我的项目和。pro文件中包含了所有需要的文件。我使用"Add Library"向导来添加库。在Qt Creator没有成功之后,我用Visual Studio创建了一个最小的例子。当我将所有需要的文件包含到VS项目中时,我可以构建并运行它而不会出现错误。所以我认为一定有Qt Creator链接库的问题。我还尝试了Qt-Visual-Studio-Add-in,但在那里,出现了同样的错误。

下面是我想包含的库的最小示例。

在Visual Studio示例中,我将库路径、包含路径和库的名称添加到项目属性中。它的工作原理。

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

编辑:
我想使用库从S7-300 SPS设备获取一些数据。

以下代码是来自Qt Creator的最小示例。

#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 Studio最小示例中的全部代码。

#include "stdafx.h"
#include <nodave.h>

int _tmain(int argc, _TCHAR* argv[])
{
    daveInterface *di;
    daveSetDebug(daveDebugConnect);
    printf("Hello Worldn");
    return 0;
}

代码非常小,所以我不认为里面有错误。这就是为什么我认为这一定是Qt链接器或类似的东西的问题。

编辑:
我的。pro文件。

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

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

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

相关文章: