需要将MS Visual C ++移植到Linux G ++

我想先说我是计算生物物理学家,而不是软件工程师,所以我的编程知识仅限于科学计算(我使用C ++,Matlab和R)。

最近我被要求从MS Visual C ++移植一个庞大的代码包(〜10,000行)到Linux,在那里我开发了一些代码。 他们知道我在写Linux,直到一年之后,他们才告诉我,他们希望在Windows中与旧代码集成。

说实话,我不知道从哪里开始。 我能够将MakeFile放在一起并成功编译,但是我得到了一个分割错误,经过valgrind调查后,可能与数百个pipe理不当的内存分配有关。 有没有一个好的地方给我开始,不需要我学习微软的Visual C ++只是为了得到这个在Linux的工作? 任何帮助将不胜感激。 谢谢!

编辑:感谢迄今为止所有的帮助。 我绝对是“真正的”编程的新手,所以我甚至不清楚如何描述我的问题。 感谢您的理解并提供一些很好的起点。

我会开始打开编译器警告并修复所有警告。

-Wall -Wextra -Wstrict-aliasing -pedantic -Werror -Wunreachable-code 

如果你解决了所有的警告,它将解决很多你可能从未见过的问题。 特别是在不同编译器之间移植时(因为这些代码会影响移植,因为不同的编译器可以做不同的事情)。

当在MS编译器上。 将警告级别调高至4,并通知编译器将所有警告视为错误。 这些组合会得到很多错误。

有了这个代码库的大小,如果你从解决随机存储器管理问题开始,你已经注意到了,你很快就会有一个工作的应用程序。 这假定你正在诊断每个段错误,这是不是很明显的问题。 学习新代码到底是做什么的过程,以及如何与调试过程并肩作战。

如果它已经在Linux中编译过了,那么假设你没有“注释掉”任何你在编译时不明白的代码,或者避免引用Windows特定的库,那么你就不需要去学习其他的操作系统这可能在应用程序中发挥了作用。