c++ - Qt 静态库未定义引用
问题描述
我有这种情况:
- 没有依赖关系的 libA.a
- libB.a 依赖于 libA.a
- 依赖于 libA.a 的 libC.a
在 B.pro 我有
LIBS += -lA
在 C.pro 我有
LIBS += -lA
在 app.pro 我有
LIBS += -lA
LIBS += -lB
LIBS += -lC
但是当我编译时,链接器给了我在 libB 和 libC 中使用的 libA 类的未定义引用。
我怎样才能解决这个问题?谢谢
解决方案
LIBS += -lA
在 B.pro 和 C.pro 中被忽略。该选项仅适用于链接器,即构建共享库或可执行二进制文件。
要解决未定义引用的问题,请重新排序 app.pro 中的库。依赖库的顺序确实很重要。请参阅指定相互依赖的链接库的顺序错误。
LIBS += -lB
LIBS += -lC
LIBS += -lA
推荐阅读
- php - php oop、pdo 和 ajax 实例问题
- javascript - 如何在 Vue js 中使 localStorage 中的数据具有反应性
- python - Python - 包不是相对于它们的当前目录吗?
- python - 如何让模板和 Python 在 Flask 中进行通信?
- markdown - PanDoc - 强制转换为 Markdown 以分别对 H1 和 H2 使用 # 和 ##
- android - 运行时错误:没有静态方法 checkSelfPermission
- svg - svg 填充 url 不适用于任何 Chrome 扩展页面,但适用于任何网站和本地文件
- swift - CAShapeLayer 没有收到触摸
- javascript - 需要折叠出搜索结果
- javascript - 返回一系列creationTimes中的最近时间