【问题标题】:Undefined reference, QT未定义的引用,QT
【发布时间】:2014-06-24 09:16:54
【问题描述】:


在 Windows (MinGW) 上使用 Qt Creator 链接库时遇到一些问题。我有 2 个项目,一个静态库和一个使用它的应用程序。该库使用 jpeglib 并且编译得很好。但是,当我尝试编译应用程序时,它会在库项目中显示未定义的引用。我查看了 libjpeg 符号,它们的名称与使用的完全相同,因此问题一定出在链接器上(我尝试使用 Visual Studio 和 mingw 使用 msys 编译 libjpeg,都不适用于我的项目)。

在我使用的库 pro 文件中:
LIBS += -L$$PWD/../../lib/libjpeg/ -ljpeg

在我使用的 app pro 文件中:
LIBS += -L$$PWD/../../lib/libjpeg/ -ljpeg
LIBS += -L$$PWD/../../bin/StegoDiskCore/ -lStegoDiskCore

我尝试在为 jpgelib 安装 LIBS 的应用程序项目中使用 PRE_TARGETDEPS,但它表示多个目标模式(我不知道 PRE_TARGETDEPS 在这种情况下是否可行,我只是在尝试我能想到的任何东西,在最后,它可能只是一些愚蠢的东西)。如果有人可以提供帮助,我已经坚持了很长一段时间,只是不知道还有什么可以尝试的,谢谢。

【问题讨论】:

  • 向我们展示完整的错误信息。
  • 感谢您的回复。我们想通了,问题在于 libjpeg 是一个 C 库,而项目是 C++。出于某种原因,libjpeg 配置错误(可能是我的错误),并且在其主标头中,未使用“extern C”就包含了这些函数。我只是更改了标题(不是最好的解决方案,但它是即时的,我需要继续前进)。我要把我的帖子标记为已回答:)

标签: windows qt linker undefined-reference libjpeg


【解决方案1】:

libjpeg 库头文件包含库函数,但没有使用在我的 C++ 项目中不起作用的“extern C”。

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多