QtCreator LNK2019与外部库错误
QtCreator LNK2019 error with external library
我有一个问题,当我想链接一个库到我的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会产生错误。
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- Visual Studio 2017 中的 QtMetaObject 未解决的外部错误
- 外部"C"拆卸导致奇怪的链接器错误
- C++指针无法在函数外部传递值和分段错误(核心转储)错误
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 外部函数在 main() 上调用时返回分段错误 11.(C++)
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- 每次我要使用外部资源时,我都会得到:collect2。exe:错误 ld 返回 1 退出状态
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- C#WPF和C++/CLI以及C++在C++/CLI中添加外部库错误
- 函数 LNK2019 "int __cdecl __scrt_common_main_seh(void)" 中引用的未解析外部符号主错误 (?__scrt_common_main_seh@@YAHXZ
- C++:在"try"外部创建的类型会导致错误,但在内部不会
- 编译错误外部接口Simulink
- 为什么这会给出多个定义错误:外部 int i;国际 i;.