3

我一直在 Windows 平台上使用 Qt(使用 c++ 代码 + Qt 库),并且正在将我的项目移植到 Linux 平台上。

使用 Qt 这是一个非常简单的过程,我的项目在 Linux 平台上运行,几乎不需要任何更改。

但是,我们需要使用使用.lib关联头文件编译的第 3 方窗口。显然这个文件不能在 Linux 下工作,但我一直在阅读建议我可以使用 Wine 来做到这一点的帖子。

所以总的来说,我的项目将作为一个普通的 Linux (Ubuntu) 项目工作,但我想.lib使用Wine. 我一直无法找到明确的答案“如何做到这一点”。我不确定您是否使用Wine将其翻译.lib.so文件,或者您是否必须将其静态链接到一些“类似葡萄酒”的约定......

谁能帮我指出正确的方向?

谢谢 :)

4

3 回答 3

3

AFAIK,您不能使用 Wine 制作混合应用程序(即将 C++ Linux 可执行文件与一些 Linux 静态库和 Windows 静态库链接)。

我建议的解决方案之一是将您的 Windows 库封装在充当某种网络服务的 Windows 程序中,然后让您的 Linux 应用程序通过网络与您的 Windows 库通信。

然而,它增加了您的软件的复杂性,要​​求您知道如何进行一些网络编程(然而,现在这很容易做到)并且并不适合所有类型的库,特别是如果您的库有某种 GUI。

于 2013-05-28T08:44:20.930 回答
1

你试过在 Windows 下编译并在 Wine 下运行整个程序吗?

我不确定你是否可以拼接 Wine 和 Linux 程序。

于 2013-05-28T08:01:50.617 回答
1

我无法想象混合方法会奏效。在任何情况下,将程序的一部分作为本机应用程序运行,而在 WINE 中运行另一部分,与在 WINE 中运行的完整程序相比,不会给您带来太多优势。无论哪种情况,都需要 WINE。

在 WINE 中运行完整程序的主要缺点是 GUI 的外观和感觉可能看起来对系统有点陌生。但是,对 WINE 使用正确的设置将最大限度地减少问题。附带说明一下,由于可用的桌面环境不同,大多数 Linux 用户习惯于不同的 GUI 概念。我个人有很多 GNOME 应用程序在我的 KDE 桌面上运行。

我会亲自尝试在 WINE 中运行您的程序。它使开发变得更加容易。一种在电气工程师中非常有名的电路仿真工具使用了这种方法。它被称为 LTSpice。虽然只有 Windows 二进制文件可用,但开发人员使用 WINE 对其进行测试,以确保它可以在 Linux 上运行。承认,它是免费提供的工具,但社区接受这种方法。

于 2013-05-28T10:49:59.070 回答