Qt5 | Cmake |对`QPrinter::QPrinter(QPrinter::PrinterMode)的未定义引用

2023-12-13

我正在为 qt 应用程序准备 cmake 构建。我在哪里使用以下结构..

libMyApp 它使用

SET(QT5_MODULES Widgets PrintSupport Network XmlPatterns)
FIND_PACKAGE(Qt5 REQUIRED COMPONENTS ${QT5_MODULES})

and

TARGET_LINK_LIBRARIES(
    ${TARGET_NAME}
    Qt5::Widgets
    Qt5::PrintSupport 
    Qt5::Network
    Qt5::XmlPatterns
)

libMyApp构建成功并生成libMyApp.a(静态库)

现在我在我的应用程序 MyApp 中使用这个库 它使用

SET(QT5_MODULES Widgets PrintSupport XmlPatterns)
FIND_PACKAGE(Qt5 REQUIRED COMPONENTS ${QT5_MODULES})

TARGET_LINK_LIBRARIES(
    ${TARGET_NAME}
    Qt5::Widgets
    Qt5::PrintSupport 
    Qt5::XmlPatterns
    ${CODE_LIB_FILES}
)

${CODE_LIB_FILES} 是 libMyApp.a 的保存路径列表 MyApp 构建成功,最后显示链接错误

undefined reference to `QPrinter::QPrinter(QPrinter::PrinterMode)

xml 也发生同样的事情

undefined reference to `QDomNode::isElement() const'

谁能指出这里出了什么问题吗?

或使用 printsupport 和 xmlpatterns 模块描述相同场景的任何示例程序


函数中条目的顺序TARGET_LINK_LIBRARIES()很重要。最后要提到的是没有依赖关系的库,通常是一些标准库或外部库,在本例中是 Qt5 Libs。

一个例子:

  • 应用取决于
  • Lib_A依赖于取决于Lib_B and Lib_std
  • Lib_B依赖于取决于Lib_std
  • Lib_std没有依赖关系

那么该函数的调用应如下所示:

TARGET_LINK_LIBRARIES(
    ${TARGET_NAME}   # Name of the app
    "Lib_A"
    "Lib_B"
    "Lib_std"        # Last entries: Std Libs, external Libs, ...
)

在这个应用程序中我假设${CODE_LIB_FILES}=libMyApp.a对 Qt5-Libs 有一些依赖性,因此将此条目移至 Qt5-Libs 上方是合理的。

SET(QT5_MODULES Widgets PrintSupport XmlPatterns)
FIND_PACKAGE(Qt5 REQUIRED COMPONENTS ${QT5_MODULES})

TARGET_LINK_LIBRARIES(
    ${TARGET_NAME}
    ${CODE_LIB_FILES}       # <<< Moved this entry up
    Qt5::Widgets
    Qt5::PrintSupport 
    Qt5::XmlPatterns
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt5 | Cmake |对`QPrinter::QPrinter(QPrinter::PrinterMode)的未定义引用 的相关文章

随机推荐

  • 在 haskell 中按所选字符分割字符串

    我试图在每次选择字符时分割一个字符串 所以如果我收到 1 2 3 4 5 我选择的角色是 结果是一个列表 例如 1 2 3 4 5 我一直在浏览这里已经回答的问题 他们指出我使用splitOn 然而 当我尝试import Data List
  • 仅当用户选择时才使用 Inno Setup 下载文件

    问题 我想知道如何编写脚本来下载第二个 zip 文件 但最初在两个 zip 文件之间进行选择 下载 解压并删除 zip 文件 每个 zip 文件具有不同的名称 但内容与 zip 文件具有不同的名称 每个名称相同 无需重命名 这个问题有点类似
  • 由于内存限制,串行json_decode

    我有一个很大的 json 文件 7 3MB 我尝试对其进行 json decode 但由于内存限制而失败 致命错误 允许的内存大小 134217728 字节耗尽 有没有一种方法可以一次使用一个对象 节点串行解码 json 文件 我想理论上你
  • “no-ansi”选项不存在

    我正在尝试在 Windows 上创建 laravel 项目 但这个问题向我展示并且我尝试更新作曲家 php版本是8 0 6 作曲家版本是2 0 14 laravel 版本是 4 2 5 根据对此的评论Github问题这是最新版本的 Symf
  • 检查所选文件是否与 标记上的接受属性匹配

    我希望防止用户上传服务器会从包含最少 JavaScript 的页面拒绝的文件 最好不要添加任何严重的依赖项 例如纯粹为了解决这一问题的 jQuery 由于我不是针对旧用户 因此我使用浏览器的表单验证系统来检查用户是否选择了有效文件 但它似乎
  • PhoneGap (Cordova.js) 和 JQuery.Ajax 不能一起工作

    我已经使用 Phonegap Jquery 构建了一个针对 Andriod 4 12 的 html 页面 我的业务需求是使用 cordova js 的相机 API 拍照 然后将捕获的图片发布到 ASMX Web 服务 问题 当我添加对 Co
  • 半透明物体渲染顺序

    渲染半透明对象时 使用 glBlend 建议按 z 顺序从后到前对对象进行排序 From opengl 文档 在应用程序中使用深度缓冲时 您需要注意渲染图元的顺序 需要首先渲染完全不透明的图元 然后按从后到前的顺序渲染部分不透明的图元 如果
  • 在 iPhone 中创建二维码

    我看过一些示例代码 这些代码正在从文本创建二维码 下面是代码 我们也可以从其他数据 如图像 生成二维码吗 NSString code 1001012023034 Barcode barcode Barcode alloc init self
  • 在Java中为数字添加前导零? [复制]

    这个问题在这里已经有答案了 有没有更好的方法来获得这个结果 如果 num 的位数多于位数 则此函数会失败 并且我觉得它应该在库中的某个地方 例如 Integer toString x 3d 或其他东西 static String intTo
  • 获取与 Windows 中的任务管理器相同的进程详细信息

    我编写了一个程序来获取当前正在运行的进程的内存详细信息psutil在Python 3中 问题是我得到的值与Windows任务管理器中的值不同 具体来说 如何在Python中获取进程的私有工作集大小 psutil 调用GetProcessMe
  • 如何制作或使用 WP7 的标准图像查看器

    我想做一个显示图片的应用程序 但我希望能够通过手势来放大和缩小 我通过在我的项目中包含一个工具包来解决这个问题 但我真正的问题是 我可以使用或者是否有一个已经为我创建的控件来显示图片 例如 WP7 手机本身的图片库 我以为没有 但 Face
  • Ansible 抛出“无法更新 apt 缓存:W:无法安全地从此类存储库更新”错误

    我对 Ansible 非常陌生 我正在尝试在 EC2 实例 Ubuntu 18 04 上安装 kubectl 来上课 我已经运行了剧本 一切进展顺利 直到遇到任务 4 然后抛出以下错误 致命 localhost 失败 gt changed
  • 在 URL 和 .htaccess 中使用空格

    我为我的城市编写了一个本地名称 电话 地址搜索引擎 用户必须能够通过访问以下任一 URL 来快速访问结果 search by number http domain com 5554651 search by lastname http do
  • 如何在 Windows Phone 8.1 中缓存页面

    以前在Windows Phone 8 0应用程序中 我们可以通过这种方式更深入地导航到同一页面 NavigationService Navigate new Uri SamePage xaml UriKind Relative 页面会自动缓
  • QuickGraph - 是否有算法可以找到一组顶点的所有父级(直到根顶点)

    在 QuickGraph 中 是否有算法可以查找一组顶点的所有父级 直到根顶点 换句话说 所有顶点的下方某处 在通往叶节点的路上 都有一个或多个顶点输入 因此 如果顶点是节点 并且边是依赖关系 则找到将受到给定节点集影响的所有节点 如果不是
  • 如何使用 Visual Studio 2019 面向 Windows 7?

    我想使用 Visual Studio 2019 来享受最新的 C 新增功能 但针对的是 Windows 7 我使用 VS 2019 向导创建了一个 Windows C 应用程序 在 Windows 10 上运行 A targetver h文
  • URLEncoder.encode() 和空格?

    我的服务器上有一个名为 some image png 名字里有一个空格 当我在浏览器 chrome 中输入 url 时 它会将空格转换为 20 some 20 png 当我从应用程序中使用 URLEncoder encode some im
  • GStreamer 同时录制和查看流

    我手头有一项奇怪的任务 我已经尝试了一切 我想知道你是否能帮忙 我的任务是抓取 RaspPi 发出的流并将其保存到我的电脑上 但是 我需要同时查看和保存它 这可以查看它 gst launch 1 0 udpsrc 端口 5000 应用程序
  • 相关子查询中的 MySQL LIMIT

    我有一个相关子查询 它将返回数量列表 但我需要最高数量 而且只需要最高数量 因此 我尝试引入 order by 和 LIMIT 1 来实现此目的 但 MySQL 抛出一个错误 指出它还不支持子查询中的限制 关于如何解决这个问题有什么想法吗
  • Qt5 | Cmake |对`QPrinter::QPrinter(QPrinter::PrinterMode)的未定义引用

    我正在为 qt 应用程序准备 cmake 构建 我在哪里使用以下结构 libMyApp 它使用 SET QT5 MODULES Widgets PrintSupport Network XmlPatterns FIND PACKAGE Qt