是在Visual Studio 2010中成功编译时可移植到Linux的c ++源代码

时间:2010-11-26 13:15:07

标签: c++ visual-studio-2010 compiler-construction cross-platform

我想使用Visual Studio 2010创建一个最终将在Linux上运行的C++ application

是否存在我应该注意的兼容性/版本问题? 我应该在WindowsLinux上使用哪种编译器?

3 个答案:

答案 0 :(得分:6)

只要您使用标准 C ++且没有特定于平台的扩展,编译器就不重要了。如果您需要特定于系统的设施(网络,文件系统......),请尝试使用boost等抽象层。

答案 1 :(得分:4)

遗憾的是,您需要注意许多问题。正如其他人所指出的,最重要的是,您只使用标准C ++以及任何可移植到您所定位的所有平台的库。但是还有很多其他事情要咬你,比如说不同的行结尾(Windows使用\ r \ n,Unix变体通常使用\ n),不同的数据类型大小等。更一般地说,当你试图保持可移植性时,你还需要知道诸如字节序,字节之类的东西 - 排序,不同文件系统的工作方式等。

基本上,最重要的是熟悉您所定位的所有系统。 不要在一个系统上编写它,然后期望能够在另一个系统上无痛地编译它。相反,从第一天开始在所有相关系统上编译它,并确保它始终在所有相关系统上继续工作。我建议调查一个像CMake(http://www.cmake.org)这样的跨平台构建系统 - 它将为您带来一个痛苦的世界。如果你能提供帮助,你不希望一直在为多个平台保留makefile。

答案 2 :(得分:3)

使用标准C ++。尽量不要使用编译器相关的功能,如__int64或平台特定的外部库,你应该没问题。