我有一个正在开发的 C++ 应用程序。我想发布一个免费版本和一个付费版本,生产版本在现有免费版本的基础上添加功能。
根据发布类型编译功能的最佳方法是什么?理想情况下,我会向 CMake 传递一个标志,这样在构建二进制文件时它也会包含我在生产版本中需要的任何代码。
最佳答案
您自己回答了您的问题 :) 将一个标志传递给您的编译器,并在您的代码门中将功能传递给:
#ifdef YOUR_FLAG
//your extra logic
#elif
//in case YOUR_FLAG is not defined
#endif
我在我开发的游戏中使用了完全相同的方法——在免费版本中启用广告,在付费版本中代码被预处理器排除。
您还可以使用运行时检查,以防它更适合某些特定任务,但正如问题评论中提到的那样 - 代码在那里并且篡改内存(翻转你的标志)将可能允许访问受限制的功能。
关于c++ - 如何在编译时门功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28345013/