c++在Windows和Linux上——常见问题

C++ on Windows vs Linux - common issues?

本文关键字:常见问题 Linux Windows c++      更新时间:2023-10-16

到目前为止,我所有的c++开发都是针对Windows的,但是我一直在我的脑海里有一个想法,总有一天我会针对Linux。因此,我意识到需要选择跨平台库,并保持我的代码尽可能可移植(或为不可移植的代码提供替代实现)。因此,这个问题与代码编译的问题无关。

我想知道,开发人员在瞄准Linux和Windows时将面临哪些常见问题?特别是,但不限于:

  1. 处理配置文件的最佳实践。在Windows上,这似乎是相当随意的-我见过软件将它们的配置存储在程序文件夹,用户文件夹(在appData下)和注册表中。在Linux上,它似乎更倾向于专用配置文件夹(/等)。我应该如何处理代码中的这些差异?我硬编码的位置,或者有一些系统定义的功能,我可以咨询?

  2. 与(1)相同,但用于记录

  3. 我如何保持我的项目文件同步?例如,如果我在Visual Studio项目文件中更新了一些东西,我通常需要在我工作的任何Linux环境中手动更新等效的东西,或者是否有一种常用的方法来避免这种情况?

  4. 在我的代码中处理平台实现差异的最佳方法是什么?我应该使用#ifdef s,还是应该将特定于平台的代码保存在单独的文件中,并由项目指定包含哪些文件?

  5. 还有什么我还没有想到的,我应该开始考虑/研究?

你可以用#ifdef来做艰苦的工作,或者你可以使用一个跨平台的库,比如Qt,它几乎可以解决你所有的问题。

5 -另外你应该注意行结尾,文件编码和路径分隔符。

对于1和2,我认为最好的方法是将日志和配置文件存储在程序文件夹或另一个相对位置,并使它们可移植。

5。初始化也可能是一个问题。未初始化的变量可能会出现