问题标签 [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.
c++ - Winsock 2 可移植性
我即将在 C++ 中开发一些与套接字相关的东西,并希望该软件从一开始就尽可能地在 Windows 和 Linux 之间移植(让它以后移植很棘手。)
我查看了不同的库,有一个来自alhem.net的 C++ 库,当然还有 boost::asio。boost::asio 看起来很有前途,但对于这么小的应用程序来说将是一个非常大的依赖项。
自己写这些东西是否值得,还是我应该只使用图书馆?如果我自己做,主要的陷阱是什么?
python - 是否有一种可移植的方式来获取 Python 中的当前用户名?
是否有一种可移植的方式在 Python 中获取当前用户的用户名(即,至少在 Linux 和 Windows 下都可以使用)。它会像这样工作os.getuid
:
我四处搜索,很惊讶没有找到明确的答案(尽管也许我只是在谷歌上搜索得很糟糕)。pwd模块提供了一种相对简单的方法来实现这一点,例如,Linux,但它不存在于 Windows 上。一些搜索结果表明,在某些情况下(例如,作为 Windows 服务运行),在 Windows 下获取用户名可能会很复杂,尽管我尚未对此进行验证。
c++ - LSB AppChecker:针对未使用库的 GCC 链接
我正在使用 LSB AppChecker 检查共享对象 (.so) 的可移植性。
它报告的问题之一是有一个外部库(libm.so.6)没有被使用,但无论如何都链接到了。
如何防止 GCC 链接到这个不需要的库?
编辑:
ldd 命令对我的共享对象的输出是:
cross-platform - 移植到哪些游戏平台?
我正在开发一个非常便携的独立游戏引擎,以及一个与之配套的“演示”游戏。然而,在未来我想制作一个更全面的游戏来部署在一些不同的平台上。未来游戏的细节不太重要,我更关注“如何”而不是“什么”——类型和内容与我无关。
那么你会推荐什么目标平台呢?您为该平台成功开发了哪些便宜的功能(非常震撼)?请记住成本效益,因为我的预算不允许购买价格为 10k U$ 的 SDK。
编辑:我对您为某个平台成功开发的廉价功能非常感兴趣。例如,“我很快就为 iPod 制作了这款很棒的两指触摸输入控制方法,用于复古类型的这个和那个游戏,它震撼了——我真的可以推荐那个平台/方法!”
java - 如何处理 J2ME 上最常见的类缺失
我正在尝试编写一个运行不同 Java 平台(如 J2SE、J2ME、Android 等)的应用程序。我已经知道我必须为每个平台重写大部分 UI,但希望重用核心逻辑。
保持这个核心的可移植性涉及我知道的三个缺点:
- 保持旧的Java 1.4 语法,不使用 Java 5.0 的任何优秀语言特性
- 仅使用已知可在这些平台上工作的外部库(即:不要使用 JNI 并且不依赖于违反此规则的其他库)
- 仅使用所有这些平台上存在的类
我知道克服(1)的方法:以 5.0 样式编写代码并自动将其转换为 1.4(retroweaver - 尚未尝试过,但似乎还可以)。
我认为(2)是一个我必须接受的问题。
现在我想知道(3)的最佳工作方法是什么,尤其是我最想念的集合类。我能想到那些:
- 我认识的大多数程序员只是不使用
Set
,Map
,List
等,而是回退到Vector
普通数组。我认为这首先使代码变得丑陋。但我也知道TreeSet/Hashset
or之间的正确选择LinkedList/ArrayList
对性能至关重要,并且总是使用Vector
and 数组是不对的。 - 我可以编写我自己的这些类的实现。这似乎是在重新发明轮子,我认为我不能像其他人那样做得好。
- 由于 Java 是开源的,因此在为 J2ME 构建时,我可以获取 J2SE Collections 框架的源代码并将其包含到我的应用程序中。不过,我不知道这是否是个好主意。也许有充分的理由不这样做。
- 也许已经有一些库,它们重建了集合框架最重要的特性,但针对低端系统进行了优化,也许是通过不实现不经常使用的功能。你知道任何?
感谢您的回答和意见!
编辑:我终于找到了一个(复杂但很好的)解决方案,我想通过提供我自己的答案并接受它,该解决方案将在顶部可见。但相反,我的答案仍然处于最底层。
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”的文件夹中目录。
windows - 我可以在我的 WD 160gb USB 硬盘上安装的便携式 xp 上安装 Oracle 吗?
请帮我。
我想安装一个地址打印软件。我不想使用内部硬盘驱动器,而是想使用 USB 硬盘驱动器来给我灵活性和说服力,使系统具有便携性。
我想知道,我是否可以在我的 USB 硬盘上成功安装 Portable XP。如果是,我可以在运行 Portable XP 的硬盘上安装 oracle 吗?软件是在 Oracle 上制作的吗?
我该如何安装它?
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 也使用它。
perl - 有可移植的 Perl 吗?
是否有类似可移植 Python 的可移植 Perl?我可以从我的拇指驱动器中使用的东西(在学习这些东西的同时)?
哦,我说的是Window XP。
.net - App.config dllmap 入口可移植性
dllmap 配置文件条目在 Mono 中用于将 Windows DLL 请求映射到 Linux (.so) 库。但似乎如果微软的 .NET 框架试图解析带有这样一个条目的配置文件,就会出现错误,因为它不理解“dllmap”。我认为我的发行版中的所有其他内容都可以在 Linux 和 Windows XP 上不加改动地分发。在涉及到的所有可移植性中,这个配置条目真的是失败 - 一个不可移植的部分吗?难道没有办法跨平台共享这个文件吗?