- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我打算为 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 步)使用跨平台构建系统,如 scons或 cmake .
第 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/
刚刚买了一辆装有 Microsoft 同步系统的汽车。在网上进行了快速搜索,很好奇是否有人知道可能存在的任何 SDK、示例开源附加应用程序等。 提前致谢。 最佳答案 更新: 看起来像Ford has
我使用VS2010,目标为.Net 2.0(VB.Net Windows Form应用程序) How to decide what is the .Net target我决定使用 2.0,因为我知道如
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Reading/Writing MS Word files in Python 我正在研究需求管理系统(如
Visual Studio 的价格非常昂贵。这就是为什么我想知道我可以使用什么来免费开发 ASP.NET 和 Silverlight 应用程序。如果我使用express工具,我可以开发商业应用吗?使用
是否可以设置特定单词或短语的语气或重点? 例如:Good Morning会用轻松的语气,而 The nuclear plant is about to melt down会更加紧迫。 我知道我可以改变
我注意到这个问题重复了几次,但是,从所有资源来看,我仍然无法使其正常工作。 我只是尝试在我的 Django 应用程序中使用 Azure Active Directory 身份验证。我正在使用this模
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我在使用 UseJwtBearerAuthentication 方法时遇到困难,我正在使用 Microsoft Azure ACS 获取 token (使用服务标识)。 JWT token 很好地返回
所以我找到了list今天 MSDN 上有很多转换器,现在我想使用其中的一些。然而,经过一番搜索后,我似乎找不到任何关于它们的信息。 我主要想用IntToBoolConverter 。但是我不知道如何使
我在使用 UseJwtBearerAuthentication 方法时遇到困难,我正在使用 Microsoft Azure ACS 获取 token (使用服务标识)。 JWT token 很好地返回
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
有没有办法摆脱子表单中的左侧栏和底栏? 我指的是这张图片中的酒吧。 我有被引用为连续形式的形式,如果这很重要。我想做的是让它看起来有点像这个用户所做的 Trying to Make an Effici
例如,我有一个任务表: TaskTitle DueDate Person Manager Report 3/28/15 John Dave Inspection 4/10/15 Bri
我得到的错误在这里: #if defined( _WIN32 ) #ifndef WIN32 #error error // error calls here #end
我想知道 MS Jscript(不是 Jscript .net)是否有类似于 python 中的电子邮件模块? 最佳答案 您可以使用Collaboration Data Objects (CDO) C
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
为什么我收到以下代码的以下警告:) 代码: _stprintf(m_szFileNamePath,_T("%s"),strFileName); warning C4996: '_swprintf':
我一直在阅读他们现在已经放弃了他们的 HPC 项目并转向 Hadoop。他们将提供自己的 hadoop 安装包,可能会更无缝地与 .NET 集成。 我在哪里可以获得有关此计划的文档?架构以及如何开始在
文件表: Company Document Status Notes: A 1 Submission Submitte
我不太了解 VB。我能弄清楚大部分事情。想知道有没有人能告诉我这行代码是什么意思 Option Compare Database 最佳答案 意思是“在这个模块中,使用数据库中定义的规则比较字符串。”
我是一名优秀的程序员,十分优秀!