QPrinter 链接器无法找到文件

问题描述 投票:0回答:2

当我尝试在代码中的任何位置声明 QPrinter 时,出现以下错误:

Error   1   error LNK2019: unresolved external symbol "__declspec(dllimport)      
public: virtual __thiscall QPrinter::~QPrinter(void)" (__imp_??1QPrinter@@UAE@XZ) 
referenced in function "private: void __thiscall ezXpns::on_loginButton_clicked(void)" (?
on_loginButton_clicked@ezXpns@@AAEXXZ)  
(path)\TestBuild_April3\TestBuild\ezxpns.obj    TestBuild

Error   2   error LNK2019: unresolved external symbol "__declspec(dllimport) 
public: __thiscall QPrinter::QPrinter(enum QPrinter::PrinterMode)" (__imp_??
0QPrinter@@QAE@W4PrinterMode@0@@Z) referenced in function "private: void __thiscall 
ezXpns::on_loginButton_clicked(void)" (?on_loginButton_clicked@ezXpns@@AAEXXZ)  
(path)\TestBuild_April3\TestBuild\ezxpns.obj    TestBuild

搜索后我发现这意味着链接器可以找到方法声明,但不能找到方法本身。此外,它似乎在任何提及

QPrinter
时都会失败。我认为这可能是因为该方法在 QT5 中已被弃用,但似乎 QT 打印机通信的新方法尚未发布。可能是什么问题?
#IFDEF
QPrinter 文件中的预处理器声明?

我的包括:

#include <QtWidgets/QMainWindow>
#include "ui_ezxpns.h"
#include "Vector2D.h"
#include <QtPrintSupport\qprinter.h>
#include <QtPrintSupport\qprintdialog.h>
#include <QtPrintSupport\qtprintsupportglobal.h>
#include <qapplication.h>
c++ qt printing linker
2个回答
13
投票

我假设您没有为您的项目启用 QtPrintSupport。 您可以通过添加来启用它

QT += printsupport

到您的 .pro 文件。

欲了解更多信息,请阅读此处


0
投票

只有当你使用qmake时才会有.pro文件。

如果你正在使用cmake

将此配置添加到您的 CMakeLists.txt 文件中

find_package(Qt6 REQUIRED COMPONENTS PrintSupport)
target_link_libraries(mytarget PRIVATE Qt6::PrintSupport)

更多参考 https://doc.qt.io/qt-6/qtprintsupport-index.html

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.