我正在为内部应用程序使用开源项目。 它是楔形文字linux ocr引擎。 当我在调试模式下构建它时,构建工作完美。 发布版本挂起在一些图像上,没有任何反馈。
是否可以更改编译器标志,发布版本使用调试版本代码? 我试图在代码中编辑ifdef和ifndef配置但没有成功。
我是一名c#开发人员,只掌握c ++的基本技能。
我想使用发布版本的主要事实是安装它的服务器应该只使用msvc ++运行时。 debug dll只能由visual studio安装提供。
问候 INGO
答案 0 :(得分:1)
这是不可取的。在这种情况下(Debug运行良好,Release没有运行),它往往会降低到某些未初始化的变量。在整个代码中放置断言的好习惯是作为开发人员的完整性检查(断言通常不是作为发布版本的一部分编译,但它们是Debug版本的一部分)来检查这样的条件。
Debug构建将包含许多额外的符号信息以及代码中更严格的值分配,以确保调试器可以挂钩。这有时可以缓解这样的问题,因为编译器会正确地初始化调试器的变量,如果没有正确初始化的变量会产生未定义的行为(有时这种未定义的行为对于程序执行来说是非常致命的!)。因此,当Debug一个版本时,Release版本不起作用。