我们的项目使用了许多静态库来构建应用程序。我们如何确保在应用程序的发布版本中使用的是库的发布版本?
我们在发布应用程序构建中使用调试库是在犯错误。
我正在寻找一种优雅的方式,在这种方式中,我可以编写一个模块,我们可以检查特定的库是否发布或调试,如果不匹配则报告它。我们的应用程序是用C/C++编写的。(Platform MSVC & GCC)
发布于 2009-05-11 11:52:41
通常的方法是给这些库不同的名称,或者将它们存储在不同的目录中,例如Debug和Release。如果你的构建被正确地自动化了,我看不出你怎么会犯错。
发布于 2009-05-11 13:02:20
是。您可以检查文件的IMAGE_FILE_HEADER
结构的Characteristics
字段。如果库是发布版本,则位0x0200 (DEBUG_STRIPPED
)将被设置;在调试版本中,它将被清除。
你可以在网上的不同地方(如here)找到Windows EXEs和DLL使用的PE格式的技术信息,以了解如何检索该结构。
发布于 2009-05-11 11:46:44
您不能使用命名约定(即,foo_rel.a
和foo_dbg.a
)来解决这个问题吗?
https://stackoverflow.com/questions/847721
复制相似问题