c++在Windows和Linux上——常见问题
C++ on Windows vs Linux - common issues?
到目前为止,我所有的c++开发都是针对Windows的,但是我一直在我的脑海里有一个想法,总有一天我会针对Linux。因此,我意识到需要选择跨平台库,并保持我的代码尽可能可移植(或为不可移植的代码提供替代实现)。因此,这个问题与代码编译的问题无关。
我想知道,开发人员在瞄准Linux和Windows时将面临哪些常见问题?特别是,但不限于:
-
处理配置文件的最佳实践。在Windows上,这似乎是相当随意的-我见过软件将它们的配置存储在程序文件夹,用户文件夹(在appData下)和注册表中。在Linux上,它似乎更倾向于专用配置文件夹(/等)。我应该如何处理代码中的这些差异?我硬编码的位置,或者有一些系统定义的功能,我可以咨询?
-
与(1)相同,但用于记录
-
我如何保持我的项目文件同步?例如,如果我在Visual Studio项目文件中更新了一些东西,我通常需要在我工作的任何Linux环境中手动更新等效的东西,或者是否有一种常用的方法来避免这种情况?
-
在我的代码中处理平台实现差异的最佳方法是什么?我应该使用
#ifdef
s,还是应该将特定于平台的代码保存在单独的文件中,并由项目指定包含哪些文件? -
还有什么我还没有想到的,我应该开始考虑/研究?
你可以用#ifdef
来做艰苦的工作,或者你可以使用一个跨平台的库,比如Qt,它几乎可以解决你所有的问题。
5 -另外你应该注意行结尾,文件编码和路径分隔符。
对于1和2,我认为最好的方法是将日志和配置文件存储在程序文件夹或另一个相对位置,并使它们可移植。
5。初始化也可能是一个问题。未初始化的变量可能会出现
相关文章:
- 如何在 Mac 上正确编译C++,当它在 Linux 上编译没有问题时?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- 我在使用 boost::serialization 时遇到了一个问题,我的代码在 Linux 中运行良好,但在 Wind
- 在 C++ 的自定义运算符中删除与删除[](不同于常见的删除与删除[]问题)
- 调试模板时出现问题.专门针对 Linux GCC 7、GCC 6、GCC 5、GCC 4.9 错误构建失败:模板参数 1
- 编译问题与 Ubuntu Linux
- 获取处理器相关性(linux)时出现问题
- C++ Linux 上的插件 ABI 问题
- Linux 测量时间问题! std::chrono, QueryPerformanceCounter, clock_ge
- 在 64 位 Linux armv8 计算机上编译 32 位二进制文件时遇到问题
- 克服下载CSV文件进行分析时的问题.Linux与Windows新品Charachter
- 常见问题TDD与模拟
- 如何理解C++常见问题中的"程序忽略我的输入请求"?
- 内联与#define的C++常见问题解答示例
- C++常见问题 32.8 "pass an object of a C++ class to/from a C function"问题
- 源文件编译器错误 - 常见问题
- C++常见问题解答的不安全宏的解释?
- 轻量级包装器-这是一个常见问题吗?如果是,它的名称是什么
- C++常见问题解答中类层次结构的打印模式
- c++在Windows和Linux上——常见问题