在 Visual Studio 2010 中成功编译后,C++ 源代码可移植到 Linux

问题描述 投票:0回答:3

我想使用

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

有什么我应该注意的兼容性/版本问题吗? 我应该在

Windows
Linux
上使用哪个编译器?

c++ visual-studio-2010 cross-platform
3个回答
6
投票

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


4
投票

不幸的是,有很多问题需要您注意。正如其他人指出的那样,最重要的是您仅使用标准 C++ 以及可移植到您目标的所有平台的任何库。但还有很多其他事情也会困扰你,例如不同的行结尾(Windows 使用 , Unix变体通常使用 )、不同的数据类型大小等。更一般地,当您尝试保持可移植性时,您还需要了解字节顺序、字节顺序、不同文件系统的工作方式等。

本质上,最重要的是熟悉您所针对的所有系统。 不要在一个系统上编写它,然后期望能够在另一个系统上轻松编译它。相反,从第一天起就在所有相关系统上编译它,并确保它始终在所有系统上继续运行。我建议研究像 CMake (http://www.cmake.org) 这样的跨平台构建系统——根据我的经验,它会为你省去很多痛苦。如果可以的话,您不想一直保持多个平台的 makefile 同步。


3
投票

使用标准C++。尽量不要使用依赖于编译器的功能,例如

__int64
或特定于平台的外部库,应该没问题。

© www.soinside.com 2019 - 2024. All rights reserved.