我无法在Redhat(Centos)中运行的Debian(Ubuntu)中运行C++程序

Chr*_*ris 10 c++ ubuntu debian redhat centos

TLDR:在Ubuntu Debian中编译在Centos Redhat中运行的C++程序时遇到问题.在这两个之间我应该注意哪些会使使用相同编译器编译的C++程序不起作用?

您好,我正在尝试编译并运行Germline(http://www1.cs.columbia.edu/~gusev/germline/).它在RedHat Centos中运行良好,但是因为在我切换的大部分内容中,Centos不像Ubuntu那样受支持.现在这个程序不起作用.它完全有可能只使用某种RedHat功能,但我使用相同的编译器(g ++)在两种环境中编译它.

我一直在试图让这个东西在Ubuntu上工作,因为它更好用,但截至目前,当我在ubuntu"make all"项目时它将编译并且测试旋转(Don永远都没有完成.无论我使用什么二进制文件(在Centos中编译并复制,我刚才提到的失败的测试二进制文件等),程序总是会冻结.

有点长,抱歉.我的主要问题是:我可以尝试其他任何C++编译器替代方案吗?有没有我可能缺少的Red-hat C++库.或者他们的C++实现的主要区别是什么?

pdw*_*pdw 6

我看了看软件.它的输入代码有点脆弱,我不确定Ubuntu或Red Hat的C++库在这种情况下是否有错误,但程序很容易修复以适用于两者.

在文件中PEDIndividualsExtractor.cpp,在函数中void PEDIndividuasExtractor::loadInput(),更改行:

while (!stream.eof() )
Run Code Online (Sandbox Code Playgroud)

至:

while (stream)
Run Code Online (Sandbox Code Playgroud)

并重新编译.


小智 1

您应该指定第一个错误到底是什么,您没有提供足够的信息来说明问题是什么,但是我猜想缺少依赖项。

任何像样的包都会附带一个依赖项列表,您是否检查过这一点并检查了要求是否存在?

在没有需求和依赖项列表的情况下,在这种情况下,一个好的经验法则是检查第一个错误是什么并修复它。例如,如果第一个错误显示“缺少foolib.h”,那么您需要为该机器安装“foolib”。