Articles of 兼容性

二进制和共享库在不同版本的相同Linux发行版中的兼容性

假设我在Linux发行版X ver N上编译了共享库和二进制文件,它是否可以在N + 1的发行版上运行? 什么是一般规则来确定这一点? (例如,gcc / glibc版本,可能是特定分发版,LSB等)

哪个shell应该用于Linux / MacOS / UNIX最佳兼容性?

我的问题可能与SO问题“ 我应该使用哪个Linux shell? ”有关,但是我的问题是要知道哪个shell将用于编写应用程序启动脚本,知道这是一个跨平台的Java应用程序(几乎所有的Linux发行版,MacOS,Solaris,…)。 所以我在这里添加兼容性问题 。 请注意, 我并不是问 “一般最好使用哪一个壳” (在我看来这可能没有意义:主观的,取决于需求),但是我想知道哪个壳有最好的机会今天,在大多数操作系统上都可用(并适用于Java应用程序的启动)。 另外,我可以简单地使用shebang #!/bin/bash来“使用bash”吗? (或者例如Korn shell的#!/bin/ksh )。 如果这个shell在这个操作系统上不可用呢? 我们实际上使用了一个“.sh”文件和shebang #!/bin/sh (我猜是Bourne shell),但是有些用户抱怨某些Linux发行版有错误(我们还不知道他们使用哪一个,但我们希望有一个更全球的方法,而不是一个接一个地修正错误)。 MacOS目前使用bash作为默认shell,但是目前我们在MacOS上没有使用/bin/sh 。 注意:我们希望避免有几个启动脚本(即使用不同的shell)

我如何使shell脚本在Linux和OS X上都可以工作?

我有一段代码来编译一个tex文件。 #!/usr/bin/env bash filename="thesis" pdflatex -shell-escape $filename makeglossaries $filename bibtex $filename pdflatex $filename pdflatex $filename # for Ubuntu #xdg-open $filename.pdf # for mac open $filename.pdf 我如何使这个脚本在Linux和OS X上都能工作? 我觉得应该是这样的, if is Linux; then xdg-open $filename.pdf elif is OS X; then open $filename.pdf fi

如何使用Java ON LINUX实时读取文本文件?

我对Java相对来说比较陌生,所以如果我的术语不符合要求,请与我联系。 我把“ON LINUX”放在大写字母中,不会让你恼火,但是因为我已经可以在Windows上使用3个不同的文件读取类来完成这个任务了。 FileIntputStream BufferedReader RandomAccessFile(最后两个我相信,但第一个可能是错的 – 我的记忆是baaad。)所有这些都在我的窗户上完美的工作。 我对这些阅读器的使用意图是逐行阅读一个文本文件,也就是说,当这个文件的新版本保存着一个新的行时,java程序读取这行代码,然后继续检查另一条新线路。 我尝试使用Java 7 openJDK,Java 7 Oracle和Java 8 Oracle环境进行编译,所有生成的.jars在windows上运行良好,而且由于Java是跨平台的,我认为它们也可以在Linux上工作(对吧?在linux上testing时,我编译的版本失败了。 这引起了我的注意,运行Linux Red Hat的社区论坛成员,没有错误/exception,看起来像是在运行,但没有工作。 我今天安装了Ubuntu,自己尝试了一下:读者将读取原始文件,但不会实时“stream”文件。 对文件的更改不被注意。 我很困惑,这是怎么可能的,老实说,我很惊讶它没有被带到任何地方(据我可以告诉大声笑)。 希望这意味着我在某个地方犯了一个愚蠢的错误,以确保有人可能跟踪的Linux兼容性。 任何和所有帮助/答案/变通办法表示赞赏! 这里是我想要在我的程序中实现的代码示例: import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; public class Driver { public static void main(String[] args) { RandomAccessFile reader = null; try { reader = new RandomAccessFile(new File("/home/citats/csgo/console.log"), "r"); […]

如何testingPOSIX兼容性?

我正在用POSIX API和使用Linux编写一个C程序。 我编译并运行在朋友的Mac OSX PC上,出现了一个小错误,但是我没有使用Linux的特定function。 我将使用Linux添加到API的一些特定function。 我也将为Mac OS X和FreeBSD使用特定的POSIX扩展。 我将使用条件编译来select代码。 如果操作系统不是这些,我将使用通用的POSIX代码。 我不拥有达尔文/ Mac OSX和FreeBSD,Linux是我在我的电脑中唯一的操作系统。 我无法下载和安装FreeBSD,因为它超过了500 MB。 我想知道一种方法来testing程序是否会在其他POSIX系统上编译和运行。 我不知道是否有一个POSIX模拟器和编译器来做testing。 testing很简单,它们不使用GUI和驱动程序,它们只是命令行。 我将需要做3个testing:FreeBSD,Mac OSX / Darwin和Generic POSIX,但是我没有这些工具。 编辑 有没有GUI的FreeBSD和Darwin的最小版本,但使用GCC / G ++和ssh / scp? 达尔文是自由的,不是吗? 我的电脑是旧的,但我想我可以将它们安装在虚拟机中,创build一个虚拟networking,并使用ssh / scp来传输和testing程序。

fgets()linux vs mac

在Mac上的fgets读取直到回车'\ r'还是依赖于新行'\ n'? 原因是我正在使用fgets一次读取一行文件。 但是,如果它运行在一个只有'\ r'的行结束的mac文件,它不能做我想要的。 (在Linux中运行) 我不想编写库types的函数来处理交叉兼容性问题。 是否有另一个标准的function,我可以使用呢?

在OS X下运行Linux二进制文件

是否有可能在OS X内部创build一个Linux兼容层? 有人已经创build了xbinary ,这本质上是xbinary的OS X端口作为kext,在这里: http : //www.osxbook.com/software/xbinary/ 。 从这里的想法扩展,我猜是否有可能在OS X内创build一个Linux兼容层: xbinary显然是内核接受ELF的原因。 遇到ELF时… 启动本身是Mach-O二进制文件的ld-linux.so一个端口,加载ELF库(在某种程度上也可以使用Mach-O库)。 另一个kext捕获Linux系统调用( x86和amd64系统上的int 80h )并将它们转换为内核中相应的OS X系统调用,或者让ld-linux.so用另一个库中的小函数调用replace所有系统调用,在另一个库中转换它们。

混合来自不同C ++编译器的库

我正在一个跨越几个不同的组织的项目上工作redhat 5.2。 每个组织都提供已经用各种版本的g ++编译的库。 目前这些版本包括4.1.1,4.1.2和4.3.1。 我试图将所有库一起链接到一个使用4.1.2的可执行文件。 如果有任何问题,我可以期待这样做吗? 另外,有没有一种方法可以告诉每个编译器版本构build的ABI?

JRE / Windows版本兼容性

我正在为Windows的Java应用程序创build一个安装程序。 客户想要将JRE与安装捆绑在一起(我知道这是一种皱眉,但这不是我所能理解的)。 如果我捆绑JRE7 32位Windows版本,它是否可以在所有Windows版本(XP-8,32位和64位)上运行?

Clang或GCC编译器用于Windows上的c ++ 11兼容性编程?

我想知道哪个编译器在Windows操作系统(8.1)上兼容c ++ 11(和更高版本)函数,liberies和特性(如lambdas)的兼容性更好,而且使用起来也很舒适(减less错误)。 我是一名大学生,因此我并不看产品的主题(尽pipe我喜欢为我的研究项目编写更多的代码)。 我现在正在使用eclipse luna IDE。