【问题标题】:Error when compiling QXmpp library on Qt 5.4在 Qt 5.4 上编译 QXmpp 库时出错
【发布时间】:2015-04-28 15:34:48
【问题描述】:

我从今天早上开始尝试为 QT 调用 qxmpp 编译一个 XMPP 库。

我尝试使用 Qt Creator 并执行 Build All,但编译器找不到名为 -lqxmpp0 的东西,我不知道它是什么。很遗憾,Google 没有提供帮助。

我的 Qt 窗口:

github Library

提前感谢您的帮助。

【问题讨论】:

标签: c++ qt xmpp qxmpp


【解决方案1】:

请检查 qxmpp.pri 中是否有类似的定义:

QXMPP_INCLUDEPATH = $$PWD/src/base $$PWD/src/client $$PWD/src/server

# Determine library name
CONFIG(debug, debug|release) {
    QXMPP_LIBRARY_NAME = qxmpp_d
} else {
    QXMPP_LIBRARY_NAME = qxmpp
}

# Determine library type (shared or staticlib)
isEmpty(QXMPP_LIBRARY_TYPE) {
    android | ios {
        QXMPP_LIBRARY_TYPE = staticlib
    } else {
        QXMPP_LIBRARY_TYPE = shared
    }
}

你有没有看到 QXMPP_LIBRARY_NAME 定义了库的名称,还要检查 examples.pro 中是否包含 qxmpp.pri。希望我的回答能帮到你。

【讨论】:

  • 还要检查 qxmpp.pro 中是否在 src 之前添加子目录示例
【解决方案2】:

-图书馆 -l 库

链接时搜索名为 library 的库。 (将库作为单独参数的第二种选择仅适用于 POSIX 合规性,不推荐。)

在命令的哪个位置编写此选项会有所不同;链接器在 它们被指定的顺序。因此,“foo.o -lz bar.o”搜索库“z” 在文件 foo.o 之后但在 bar.o 之前。如果 bar.o 指的是函数 ‘z’,那些函数可能无法加载。

链接器搜索库的标准目录列表, 这实际上是一个名为 liblibrary.a 的文件。 然后链接器 使用这个文件,就好像它是按名称精确指定的一样。

搜索的目录包括几个标准系统目录以及您使用 -L 指定的任何目录。

通常以这种方式找到的文件是库文件——其成员是目标文件的存档文件。链接器通过以下方式处理归档文件 扫描它的成员,这些成员定义了迄今为止的符号 被引用但未定义。但是如果找到的文件是 普通的目标文件,它以通常的方式链接。唯一的 使用 -l 选项和指定文件名之间的区别是 that -l 用“lib”和“.a”包围库并搜索几个 目录。


https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html

【讨论】:

  • 感谢您的回复。老实说,我不太明白你的意思。我必须在 Qt 中进行一些更改吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
  • 2012-05-13
  • 1970-01-01
相关资源
最近更新 更多