Windows与Linux上的C ++ - 常见问题?

时间:2013-01-14 20:03:24

标签: c++ linux windows

到目前为止,我在C ++中的所有开发都是针对Windows的,但是我一直认为我有一天会将目标锁定在Linux上。因此,我意识到需要选择跨平台库,并尽可能保持代码的可移植性(或者为不可移植的代码提供替代实现)。因此,这个问题与代码编译问题无关。

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

  1. 处理配置文件的最佳做法。在Windows上,这似乎是相当随意的 - 我已经看到软件将其配置存储在程序文件夹,用户文件夹(在appData下)和注册表中。在Linux上,它似乎更专注于专用配置文件夹(/ etc)。我该如何处理代码中的这些差异?我是否对位置进行硬编码,或者是否有一些我可以参考的系统定义函数?

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

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

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

  5. 还有其他我没想过应该开始考虑/研究的事情吗?

2 个答案:

答案 0 :(得分:2)

您可以使用#ifdef进行艰苦的工作,或者您可以使用跨平台的库,例如可以解决几乎所有问题的Qt。

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

答案 1 :(得分:0)

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

表示5. - 初始化可能是一个问题。未初始化的变量可能会浮出水面。