当前位置: 首页 > 知识库问答 >
问题:

基于Qt库的CMake应用程序依赖

后安民
2023-03-14

我将描述我的CMake项目目前是如何安排的。现在还早,所以欢迎提出更好的安排。

  • 顶级
    • lib1
      • lib2

      我在每个级别上都有cmakelists.txt。

      在Lib1 I add_library(STATIC)中,然后使用Lib2 target_link_library,它也是静态的。

      lib2的cmakelists.txt执行对Qt5Widgets、Qt5Core和qt5gui的find_package调用。

      最后,应用程序的cmakelists.txt为lib1执行add_executable,后跟target_link_libraries。

      一切都编译和链接,直到我实际在应用程序代码中调用Lib2中的一个函数。然后我得到一堆指向lib2函数的未解决的符号链接器错误。如果我使Lib2成为一个对象库,并相应地更改Lib1中的链接,这似乎并不重要。我还尝试将应用程序链接到Lib1和Lib2上,结果相同。

      我在这里做错了什么?

共有1个答案

公羊光明
2023-03-14

Find_packages只是用库位置填充变量。

您需要在Lib2上使用Qt5Widgets、Qt5Core和Qt5Gui来target_link_libraries,以便cmake能够正确地链接它们。

 类似资料:
  • 我有以下项目结构: cmakelists.txt lib1/cmakelists.txt以及lib的所有cpp和头文件 lib2/cmakelists.txt以及lib的所有cpp和头文件 app/cmakelists.txt和应用程序的所有cpp和头文件 它生成了我想要的源代码外的VS.sln文件,但是应用程序不能编译,因为它找不到lib1的头文件(显然)。 现在,我阅读并尝试了许多方法,比如(

  • 我有一个项目被配置为: CMake项目 静态库A src(取决于B) 静态Lib B src(取决于Qt)

  • 主要内容:创建项目,在Eclipse中导入项目,运行项目从这篇文章开始,我们使用Spring-AOP框架编写实际的AOP应用程序。在开始使用Spring-WS框架编写第一个示例之前,必须确保已经按照Spring AOP安装配置教程中的说明正确设置了Spring-AOP开发运行环境。 现在我们继续来编写一个简单的基于控制台的Spring AOP应用程序,它用于演示AOP的概念。 先来看看要创建的项目的目录结构 - 创建项目 打开命令控制台,进入目录并执行

  • 问题内容: 我正在设计一个简单的基于Web的应用程序。我是这个基于Web的领域的新手,我需要您提供有关设计模式的建议,例如应如何在Servlet之间分配职责,创建新Servlet的条件等。 实际上,我主页上的实体很少,而与每个实体相对应,我们几乎没有添加,编辑和删除等选项。之前,我为每个选项使用一个Servlet,例如Servlet1用于添加实体1,Servlet2用于编辑实体1,依此类推,这样我

  • 利用一套工具,Qt 开发人员可以简化在所有支持平台中构建应用程序的流程。描述应 用程序、库和插件的项目文件被用来为每个平台生成适当的 makefile。 .pro 文件描述了各个项目,该文件以文本方式概述了源文件、头文件、 Qt Designer 窗体以及其他资源。这些资源都是由 qmake 工具来处理的,以便为每个平台中的项目生成 适当的 Makefile。 项目文件可描述 Qt 的所有库、工具

  • 1.简介 Qt Demo 是 Qt 套件之一,它包含了大量的演示和示例程序,基本涵盖了 Qt 编程中的 主要类别,将它与 Qt Assistant 结合使用能够收到很好的效果。 2.运行 Qt Demo 要运行 Qt Demo,在 Windows 下,如果是可依次单击【开始】→【(所有)程序】→【Qt SDK by Nokia v2009.03(OpenSource)】→【Qt Demo】;在 X