我将为Windows和Unix操作系统体系结构开发一个命令行工具。但是我正在面临一场斗争。我怎样才能使代码在Windows和Unix之间有效地转换?Microsoft Visual Studio:Windows和Unix项目源代码兼容性
项目将主要使用MS Visual Studio C++语言编写。不过,我希望我的工具是跨平台的,所以我可以在Windows和Unix系统中使用它。由于Unix不支持Visual Studio,因此我需要在某种程度上设计代码结构以支持两种体系结构(都是32位),并且OS专用标头需要包含在代码所在的唯一一个操作系统体系结构中。
所以我在寻求你的帮助。为Windows和Unix维护几乎相同的代码的最有效方法是什么?对于该特定操作系统的所有必需头文件?所以我可以在Windows中创建program.exe文件,在Unix中创建program.run文件?测试当前操作系统体系结构(Windows或Unix)的一些条件,并包括与操作系统相关的头文件?
怎样编码?由于Windows命令行使用MS-DOS编码(在中欧,它是DOS代码页852),Unix终端使用UTF-8编码。我的工具将是多语言的(与贡献者,从我的身边开始英语和捷克语)。
我需要保持代码结构尽可能小,当然也容易维护。源代码应该可用于来自GitHub存储库的克隆/分支。
如果这不是适合堆栈溢出的问题,那么只需告诉我,我会删除它。只是寻求帮助,没有别的。
开始使用'CMake'来生成你的项目。如果可能,请勿直接使用任何操作系统功能。使用标准的C++。如果你需要一些操作系统功能,看看增强提供你想要的。使用git代码。不要将任何二进制文件或甚至生成的文件(如项目文件)放入仅存储库的源代码中。 – drescherjm
是的,使用'cmake'。它现在支持VS 2017,并且可以帮助标题差异,而不必制作特定于操作系统的东西。如果这是不可避免的,请将该代码放入操作系统抽象层。 – zzxyz
我有VS 2015社区版。它支持CMake吗? – Polda18