【发布时间】:2018-08-23 21:36:32
【问题描述】:
我正在为 qt 应用程序准备 cmake 构建。我在哪里使用以下结构..
libMyApp 它使用
SET(QT5_MODULES Widgets PrintSupport Network XmlPatterns)
FIND_PACKAGE(Qt5 REQUIRED COMPONENTS ${QT5_MODULES})
和
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 模块描述相同场景的任何示例程序
【问题讨论】:
-
作为一个想法,尝试将您的
${CODE_LIB_FILES}rigth 作为下一个条目链接到${TARGET_NAME}。函数TARGET_LINK_LIBRARIES()的顺序很重要。最后一个条目应该没有依赖关系。所以 Qt5 库应该最后链接。 -
谢谢佛罗多,这就是问题所在,它现在可以工作了 :)
-
不客气,为了完成这个请求,我还在帖子中回答了你的问题 ;-)