gpt4 book ai didi

c++ - 微软 Visual Studio : Windows and Unix project source code compatibility

转载 作者:可可西里 更新时间:2023-11-01 10:02:58 28 4
gpt4 key购买 nike

我打算为 Windows 和 Unix 操作系统架构开发一个命令行工具。但是我面临着一场斗争。如何使代码在 Windows 和 Unix 之间有效地传输?

项目将主要使用 MS Visual Studio 以 C++ 语言制作。但是我希望我的工具是跨平台的,这样我就可以在 Windows 和 Unix 系统中使用它。由于 Unix 不支持 Visual Studio,我需要设计一些代码结构以支持这两种架构(均为 32 位),并且需要包含特定于操作系统的 header ,仅用于内置代码的唯一一种操作系统架构。

所以我请求你的帮助。为 Windows 和 Unix 维护几乎相同的代码以及该特定操作系统的所有必要 header 的最有效方法是什么?那么我可以在 Windows 中创建 program.exe 文件,在 Unix 中创建 program.run 文件吗?测试当前操作系统架构(Windows 或 Unix)并包含依赖于操作系统的 header 的一些条件?

编码呢?因为 Windows 命令行使用 MS-DOS 编码(在中欧,它是 DOS codepage 852),而 Unix 终端使用 UTF-8 编码。我的工具将是多语言的(有贡献者,从我这边开始使用英语和捷克语)。

我需要保持代码结构尽可能小,当然还要易于维护。源代码应可从 GitHub 存储库中克隆/派生。

如果这不是适合 Stack Overflow 的问题,请告诉我,我会删除它。只是寻求帮助,没有别的。

最佳答案

第 1 步)设置您的持续集成系统,从第一天起每次都在 Windows 和 Unix 上构建代码。最好在每个平台上使用多个编译器。

第 2 步)使用跨平台构建系统,如 sconscmake .

第 3 步)不要在您的程序中使用任何特定于平台的代码 - 当您必须使用时,在各种ifdef<下实现多个版本 守卫。更喜欢使用跨平台库。

第 4 步)确保你有足够的单元测试(尤其是你必须使用平台特定代码多次实现某些东西的位)并确保你的 CI 系统运行所有 每次提交的测试。

第 5 步)确保所有文本从第一天起就采用 UTF-8 编码 - 到其他编码的转换可以发生在显示层,但在内部保持所有 UTF-8 干净。

第 6 步)在所有支持的平台上进行大量手动测试。

并确保调整每个编译器警告设置并使警告错误(并修复所有此类错误)。一个平台上的一个编译器发出的警告通常可能是另一平台上不同编译器的无提示错误编译代码。

关于c++ - 微软 Visual Studio : Windows and Unix project source code compatibility,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47996616/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com