问题标签 [swiften]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为 iPhone sdk 编译 swiften 库
关于图书馆的简短描述:图书馆链接
我想为 iPhone sdk编译 swift 库(即http://swift.im/git/swift/tag/?id=swift-2.0beta1 )。我检查了它的文档文件夹和编译方式,但他们只提到了 Windows 和 Unix 的编译步骤(即此页面包含编译文件的链接http://swift.im/download/#apt)。但我不知道如何为 iPhone sdk 编译它。他们提到的步骤没有得到。那么,任何人都可以解释一下吗?在检查了一个文件后,我知道应该可以为 iPhone 编译。
他们提到的另一个问题是它在 GNU 通用公共许可证 v3 下,所以我可以将它用于商业应用程序,特别是苹果批准它吗?
任何帮助,将不胜感激。谢谢
android - 如何编译用于 Android 的 swiften XMPP 库?
我尝试将 swiften(一个 XMPP 客户端库)编译为 Android JNI 的库,但失败了。有人成功吗?任何建议将不胜感激。
我按照以下步骤编译了 swiften:
- 从http://swift.im/git/swift/commit/?id=13a3f7812520d44e374d7c391daf2128335ac067下载 swiften
- 执行以下文档:http ://swift.im/git/swift/commit/?h=sandbox/tobias/android&id=b8e69ea59b471e1aff9c8db06aceb7108db0657b
- 因为我只需要swiften,所以我编译为:./scons Swiften target=android toolchain=/home/XXX/toolchain
然后我遇到了以下问题:
- 找不到 cryptlib.c,所以我下载了 openssl 并修复了这个。
- 找不到 arpa/nameser_compat.h。然后我将这个头文件从 /usr/include 复制到工具链,并在开头添加了#define BSD 199307。
- 找不到 res_init()、res_query()、dn_expand()、dn_skipname() 的声明。所以我添加了声明。
最后我得到了大小为 260M 的 libSwiften.a。大约有200个链接错误:
c++ - 适用于 Android (NDK) 和 iOS 的 C/C++ XMPP 库
我正在寻找一个可以在 Android 和 iOS 上运行而没有太多依赖/编译问题的 C/C++ 库。有什么建议和建议吗?
到目前为止,我已经看过 POCO 和 Switen。对它们中的任何一个或替代方案有什么建议吗?
(使用 Android NDK 对我来说没问题)
android - 交叉编译 Swiften 库,用于 ARM 嵌入式与 SCons 制造商
Swiften 是一个 XMPP 客户端库,我的目标是为运行 Linux 的 ARM 嵌入式目标构建它。
在对 SCons 知之甚少的情况下,我成功地进行了交叉编译。我将在这里列出我的技巧,希望有人能指出我使用这两个制造文件的可维护解决方案,SConscript.boot
并且SConstruct
.
我有两个任务(都没有令人满意地完成):
- 成功将工具链从原生编译切换到交叉编译
- 确保 OpenSSL 库已成功链接(不是由swiftim项目提供的;它们必须安装并构建在
3rdParty
文件夹中)。
将工具链从本机编译切换到 ARM 的交叉编译
我的 ARM 跨工具链组件、gcc、g++、ld 等位于此处。
我找不到一种方法来告诉scons
使用交叉工具链(从上面的位置)而不是本机工具(在通常的位置,/usr/bin
)。在调用 ( ./scons Swiften
) 前加上环境变量的完全限定值,CC 和 CXX 不起作用(虽然不推荐,但它在一个地方提到过)。
即使在对制造商进行了许多临时更改之后,Scons 也只会选择本地工具链。
所以,作为一个黑客,我不得不改变原生工具链指向交叉工具链。
通过将下面的行添加到构建脚本的默认部分来修复 ARM 的第一个编译中断,SConscript.boot
.
下一个编译中断与未找到 OpenSSL 头文件有关。为了解决位置问题,我不得不将下面的行引入 SConscript.boot
与 OpenSSL 链接
对于与 OpenSSL 库链接的示例 Switften 程序,我必须像这样移动libssl.a
并libcrypto.a
(单独构建)从它们构建的位置到工具链库位置。
帮助
不了解 scons 的工作原理,我做了一些技巧来让它工作。
我需要一些帮助:
- 与其他目标一样,引入一个名为 ARM-embedded 的新目标;iPhone、安卓等
- 将 OpenSSL 集成到构建中的干净方式。
更新 Per dirkbaechle,重试下面的脚本,它可以工作
build - 使用 scons 构建 Swiften
我正在尝试按照http://swift.im/swiften/guide/#Example-EchoBot1上的示例,使用 swiften 库构建一个简单的 XMPP 客户端。
提到的示例需要文件 Swiften.h。根据 swiften 邮件列表,这个文件是在构建 swiften 时生成的。因此,我尝试按照http://swift.im/git/swift-contrib/tree/Documentation/BuildingOnWindows.txt中的说明在我的 Windows 机器上构建它。
因为他们声明 Qt 和 open ssl 是可选的,所以我直接通过运行 scons 来构建。
这是我得到的输出:
如何设置脚本以查找我的 Visual Studio 版本?
谢谢,
此致,
C
c++ - 如何在 Swiften 中使用自定义 XML 属性
我目前正在开发一个基于 XMPP 的系统,该系统由一个 iOS 应用程序、一个 ejabberd 服务器和一个独立的客户端组成,该客户端充当一个控制器,可以接收来自用户的请求并采取相应的操作(我知道 IQ 节,但是用 Erlang 开发 ejabberd 模块对我来说太离谱了。)
对于 iOS 应用程序,我使用 XMPPFramework,而对于控制器,我选择了 Swiften,因为它是这里最推荐的 C++ 库。由于这不仅仅是一个简单的消息传递系统,我发现需要在消息中包含一些自定义属性,如下所示:
使用 XMPPFramework 很容易做到这一点,但我在尝试使用 Swiften 读取自定义属性时失败了,更不用说生成自定义消息了。
我尝试了两种方法。第一个是从消息中获取原始 XML 并使用 boost XML Parser 获取属性,但我什至无法RawXMLPayload
从消息中获取。
第二种方法,我认为最终会更直接,是分析 Swift/Swiften 代码以了解它们如何管理整个 XML 到对象的转换。我知道他们使用这个AttributeMap
类,但我不知道这些对象是如何产生的,所以那里也没有运气。
我怎样才能做到这一点?可以使用 Swiften 完成吗?
c++ - 在 iOS 项目上链接 Boost。boost::filesystem::detail::utf8_codecvt_facet 的 vtable
我已经设法为 iOS 项目编译Swiften库,但现在我遇到了与Boost库相关的链接错误。
我已经Boost
按照这些步骤进行了编译,链接过程中出现的错误是:
我读过一些文章,建议包括一些编译参数,但不确定哪些参数或我应该把它们放在哪里。我也到达了这个线程,但没有解决方案。还有其他人遇到过这个问题吗?有人成功编译和运行 iOS 版 Swiften 吗?任何关于正确方向的提示将不胜感激。
更新 1
似乎filesystem
和program_options
库共享utf8_codecvt_facet
对象,并且一个在构建时覆盖了另一个boost
。最后,我设法编译了整个Swiften
库,但是当我尝试使用它时,我得到了更多的链接错误:(当我JID
在我的主类上声明一个对象时出现这个错误:
c++ - XMPP 库与 Boost.ASIO 一起使用
我有一个使用 Boost.ASIO 编写的程序。我正在寻找一个可以与它一起使用的 C++ XMPP 客户端库,即一个已经使用 Boost.ASIO 并且公开其内部 io_service 实例,或者我可以使用我自己现有的 io_service 实例进行初始化的库,然后只需在我的 io_service 上调用 run()。
显然 Swiften ( https://swift.im/swiften.html ) 在内部使用 Boost,但我找不到任何关于如何获取内部 io_service 的示例。
任何指针?
c++ - 使用 CMake 根据 Swiften XMPP 库构建项目
我目前正在尝试使用 CMake 设置我的 C++ 项目,我成功地包含了 OpenMPI 等依赖项,但是当使用Swiften时,这变得复杂了。这不是以包的形式交付的,而是在链接的 git 存储库中显示。构建这不是问题,但我搜索了很多时间,但没有找到任何方法来包含不提供 .so 且没有主标题的库。这是我当前的 CMakeLists.txt,仅用于测试。
在尝试运行 make 时,出现以下错误:
顺便说一句,如果目录结构可以帮助你,这里是一个树输出:https ://pastebin.com/giPb9229