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

时间:2013-04-17 19:21:03

标签: c++ linux windows visual-c++ porting

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

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

说实话,我不知道从哪里开始。我能够将MakeFile放在一起并成功编译,但是我得到了一个分段错误,经过valgrind的调查后,可能与数百个管理不当的内存分配有关。我是否有一个好的开始,不需要我学习MS Visual C ++只是为了让它在Linux中运行?任何帮助将不胜感激。谢谢!

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

2 个答案:

答案 0 :(得分:9)

我首先打开编译器警告并修复所有警告。

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

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

在MS编译器上时。将警告级别提高到4并告诉编​​译器将所有警告视为错误。这些组合会产生很多错误。

答案 1 :(得分:3)

使用此代码库大小,如果您首先修复已经注意到的随机内存管理问题,您很快就会拥有一个正常运行的应用程序。这假设您正确诊断每个段错误,这个问题不是很明显。学习新代码究竟做什么以及如何与调试过程齐头并进的过程。

如果它已经在Linux中编译,你应该不需要了解任何其他操作系统,假设你没有“注释掉”你试图使它工作时你不理解的任何代码,或者避免引用可能在应用程序中起作用的Windows特定库。