Man*_*yil 6 c++
我们的项目使用许多静态库来构建应用程序.我们如何确保在发布版本的应用程序中使用发布版本的库?
我们通过在发布应用程序构建中使用调试库来犯错误.
我正在寻找一种优雅的方式,我可以编写一个模块,我们可以检查特定的库是否发布或调试,如果不匹配则报告它.我们的应用程序是用C/C++编写的.(平台MSVC和GCC)
Hea*_*eek 5
是的。您可以检查文件结构的Characteristics字段。IMAGE_FILE_HEADER如果库是发布版本,则将DEBUG_STRIPPED设置位 0x0200 ( );在调试版本上,它会很清楚。
Characteristics
IMAGE_FILE_HEADER
DEBUG_STRIPPED
您可以在网络上的各个位置(例如此处)找到有关 Windows EXE 和 DLL 使用的 PE 格式的技术信息,以了解如何检索该结构。
小智 1
正常的方法是给库起不同的名称或将它们存储在不同的目录中,例如 Debug 和 Release。如果您的构建正确自动化,我看不出您怎么会犯错误。
归档时间:
16 年,9 月 前
查看次数:
7195 次
最近记录:
8 年,11 月 前