问题标签 [portability]

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.

0 投票
6 回答
2380 浏览

c++ - Winsock 2 可移植性

我即将在 C++ 中开发一些与套接字相关的东西,并希望该软件从一开始就尽可能地在 Windows 和 Linux 之间移植(让它以后移植很棘手。)

我查看了不同的库,有一个来自alhem.net的 C++ 库,当然还有 boost::asio。boost::asio 看起来很有前途,但对于这么小的应用程序来说将是一个非常大的依赖项。

自己写这些东西是否值得,还是我应该只使用图书馆?如果我自己做,主要的陷阱是什么?

0 投票
14 回答
493106 浏览

python - 是否有一种可移植的方式来获取 Python 中的当前用户名?

是否有一种可移植的方式在 Python 中获取当前用户的用户名(即,至少在 Linux 和 Windows 下都可以使用)。它会像这样工作os.getuid

我四处搜索,很惊讶没有找到明确的答案(尽管也许我只是在谷歌上搜索得很糟糕)。pwd模块提供了一种相对简单的方法来实现这一点,例如,Linux,但它不存在于 Windows 上。一些搜索结果表明,在某些情况下(例如,作为 Windows 服务运行),在 Windows 下获取用户名可能会很复杂,尽管我尚未对此进行验证。

0 投票
2 回答
1598 浏览

c++ - LSB AppChecker:针对未使用库的 GCC 链接

我正在使用 LSB AppChecker 检查共享对象 (.so) 的可移植性。
它报告的问题之一是有一个外部库(libm.so.6)没有被使用,但无论如何都链接到了。

如何防止 GCC 链接到这个不需要的库?

编辑:
ldd 命令对我的共享对象的输出是:

0 投票
8 回答
258 浏览

cross-platform - 移植到哪些游戏平台?

我正在开发一个非常便携的独立游戏引擎,以及一个与之配套的“演示”游戏。然而,在未来我想制作一个更全面的游戏来部署在一些不同的平台上。未来游戏的细节不太重要,我更关注“如何”而不是“什么”——类型和内容与我无关。

那么你会推荐什么目标平台呢?您为该平台成功开发了哪些便宜的功能(非常震撼)?请记住成本效益,因为我的预算不允许购买价格为 10k U$ 的 SDK。

编辑:我对为某个平台成功开发的廉价功能非常感兴趣。例如,“我很快就为 iPod 制作了这款很棒的两指触摸输入控制方法,用于复古类型的这个和那个游戏,它震撼了——我真的可以推荐那个平台/方法!”

0 投票
4 回答
4617 浏览

java - 如何处理 J2ME 上最常见的类缺失

我正在尝试编写一个运行不同 Java 平台(如 J2SE、J2ME、Android 等)的应用程序。我已经知道我必须为每个平台重写大部分 UI,但希望重用核心逻辑。

保持这个核心的可移植性涉及我知道的三个缺点:

  1. 保持旧的Java 1.4 语法,不使用 Java 5.0 的任何优秀语言特性
  2. 仅使用已知可在这些平台上工作的外部库(即:不要使用 JNI 并且不依赖于违反此规则的其他库)
  3. 仅使用所有这些平台上存在的类

我知道克服(1)的方法:以 5.0 样式编写代码并自动将其转换为 1.4(retroweaver - 尚未尝试过,但似乎还可以)。

我认为(2)是一个我必须接受的问题。

现在我想知道(3)的最佳工作方法是什么,尤其是我最想念的集合类。我能想到那些:

  • 我认识的大多数程序员只是不使用Set, Map,List等,而是回退到Vector普通数组。我认为这首先使代码变得丑陋。但我也知道TreeSet/Hashsetor之间的正确选择LinkedList/ArrayList对性能至关重要,并且总是使用Vectorand 数组是不对的。
  • 我可以编写我自己的这些类的实现。这似乎是在重新发明轮子,我认为我不能像其他人那样做得好。
  • 由于 Java 是开源的,因此在为 J2ME 构建时,我可以获取 J2SE Collections 框架的源代码并将其包含到我的应用程序中。不过,我不知道这是否是个好主意。也许有充分的理由不这样做。
  • 也许已经有一些库,它们重建了集合框架最重要的特性,但针对低端系统进行了优化,也许是通过不实现不经常使用的功能。你知道任何?

感谢您的回答和意见!

编辑:我终于找到了一个(复杂但很好的)解决方案,我想通过提供我自己的答案并接受它,该解决方案将在顶部可见。但相反,我的答案仍然处于最底层。

0 投票
8 回答
2745 浏览

frameworks - 是否有任何 USB 记忆棒可运行、免安装、跨平台软件框架(带有 GUI)?

有谁知道具有以下属性的良好软件开发框架或类似框架?

  • 跨平台:应该可以在 XP、Vista、OSX 和常见的 Linux 版本(如 Ubuntu 和 Kubuntu)上运行。
  • 无需安装:能够从 U 盘运行软件,而无需将任何内容复制到主机。
  • 有良好的 GUI 支持(这就是为什么这个问题没有给出合适的答案,据我所知)。
  • 许可许可,例如 LGPL 或 BSD 等。

较软的要求包括为最常见的后端功能提供一组抽象,例如套接字、文件 IO 等(通常需要一些特定于平台的适应),并支持良好的语言,例如 Python 或 C++,不过学习一个新的(即不是 perl)通常很有趣。

我认为可能的候选人是 Qt 4.5 或更高版本(但如果没有任何安装,IFAIK Qt 软件将无法在 Vista 上运行(?)),一些 wxWidgets 或 wxPython 解决方案,也许是 gtkmm。我发现的示例在其中一项或多项要求上都失败了。这并不意味着不存在这样的例子,它只是意味着我没有找到任何例子。所以我想知道是否有人知道任何现有的解决方案?

一些说明;

  • “框架”是指带有小部件包的 Qt 或 gtkmm 或 python。
  • 这是关于能够在多个平台上运行成品,从一根棍子,无需安装,而不是拥有一个可移植的开发环境。
  • 它不是启动棒。
  • 如有必要,可以专门为不同的目标构建软件。

我看到的用例是您拥有一些您依赖的软件(例如项目规划、信息管理、分析工具或类似工具):

  • 不依赖于互联网连接可用。
  • 在不同的主机上运行,​​安装任何东西都不是很好。
  • 由用户通过物理介质(如 U 盘)移动。
  • 在不同的操作系统上运行,例如 Windows、Vista、Ubuntu、OSX。
  • 在这些不同的主机上处理相同的数据(数据可以存储在主机上或存储棒上)。
  • 捆绑框架的大小并没有真正受到限制(除非它是几千兆字节,这不太现实)。

只要软件行为相同并且在不同目标上运行时可以处理相同的数据,在棒上进行并行安装也是可以的。

对用例的不同看法是,我面前有五台新安装的机器,分别是 Vista、XP、OSX、Ubuntu 和 Kubuntu。我想,无需在机器上安装任何新东西,就能够在这五台机器上的每台机器上从单个 USB 记忆棒(满足上述 GUI 要求等)运行相同的软件(不过,如果有必要,从不同的捆绑在棍子上)。

这可能吗?

编辑:我对使用一些小部件和 sqlite 数据库的 Qt 应用程序进行了一些试验。很容易让它在 ubuntu dist 和 osx 上工作。对于 windows xp 和 vista,我必须将 QtCored4.dll、QtGuid4.dll、QtSqld4.dll 和 mingwm10.dll 复制到分发目录(这是调试代码),并将 qsqlited4.dll 复制到分发中名为“sqldrivers”的文件夹中目录。

0 投票
1 回答
296 浏览

windows - 我可以在我的 WD 160gb USB 硬盘上安装的便携式 xp 上安装 Oracle 吗?

请帮我。

我想安装一个地址打印软件。我不想使用内部硬盘驱动器,而是想使用 USB 硬盘驱动器来给我灵活性和说服力,使系统具有便携性。

我想知道,我是否可以在我的 USB 硬盘上成功安装 Portable XP。如果是,我可以在运行 Portable XP 的硬盘上安装 oracle 吗?软件是在 Oracle 上制作的吗?

我该如何安装它?

0 投票
20 回答
4732 浏览

html - 你如何处理 Internet Explorer?

我知道关于这个话题可能还有其他问题。我想每个 Web 开发人员都会使用 IE 来解决这个问题。


我的问题:

我正在开发一个完全基于 Javascript 的基于 Web 的应用程序。我是 Mac 用户。我真的很高兴在 Safari、Firefox 和 Opera 中一切正常。然后我请一位使用 Windows 的朋友使用 Internet Explorer 进行检查,但结果并不好。我的应用程序对 HTML 标准非常敏感。

主要问题是 CSS 布局。由于 jQuery 的可移植性,JavaScript 本身似乎工作正常。


我的问题:

你如何处理 Internet Explorer?我应该创建一个只在 Internet Explorer 上加载的新 CSS 吗?我应该只为 Internet Explorer 创建一个新版本的应用程序吗?您通常如何处理这个问题?该应用程序在功能设计和布局设计方面都相当大。


编辑:

使用 Nosredna 建议的 CSS 重置,已经消除了几乎一半的问题。我想这确实是一个好习惯。我注意到 SO 也使用它。

0 投票
3 回答
12772 浏览

perl - 有可移植的 Perl 吗?

是否有类似可移植 Python 的可移植 Perl?我可以从我的拇指驱动器中使用的东西(在学习这些东西的同时)?

哦,我说的是Window XP。

0 投票
2 回答
3132 浏览

.net - App.config dllmap 入口可移植性

dllmap 配置文件条目在 Mono 中用于将 Windows DLL 请求映射到 Linux (.so) 库。但似乎如果微软的 .NET 框架试图解析带有这样一个条目的配置文件,就会出现错误,因为它不理解“dllmap”。我认为我的发行版中的所有其他内容都可以在 Linux 和 Windows XP 上不加改动地分发。在涉及到的所有可移植性中,这个配置条目真的是失败 - 一个不可移植的部分吗?难道没有办法跨平台共享这个文件吗?