防止混合调试和发布库

Mou*_*rad 6 c++ visual-c++

作为一名库开发人员,我想阻止我的库用户(Windows,MSVC)链接到错误的配置(不将调试库链接到他们的发布程序,反之亦然).

是否有可能在编译期间警告用户他应该链接到库的正确配置?

编辑

调试版和发布版都应该可用,以允许Windows开发人员调试他们的应用程序.因此,我的库的调试版和发行版都应该可用.

我问这个问题是因为很多对Windows初学者开发人员的支持是由他们混合调试和发布代码以及难以调试的运行时错误引起的.

Pho*_*ong 0

您可以添加 #warning 指令,但我强烈建议您这样做。您应该更好地使用两个不同的名称交付到库的不同版本。

这是您的问题的另一个提示:

myLib.h  // Release Version
myLibd.h // Debug Version
Run Code Online (Sandbox Code Playgroud)

这样做,将迫使用户在使用您的库设置应用程序时要小心(因为设置必须是手动的)。

您还可以在 README 或 INSTALL 中添加注释,大多数用户在要在 MSVC 上设置链接时都会阅读它。

您还可以检查程序中的 DEBUG 和 NDEBUG 宏值。(在库初始化期间使用断言。