C++ 发布版本取决于MFC中的调试dll
我们的发布版本需要调试版本的MFC库。是否有人知道从何处开始查找项目,以便我们能够正确地将这些依赖项更改为发布依赖项?C++ 发布版本取决于MFC中的调试dll,c++,visual-studio,mfc,C++,Visual Studio,Mfc,我们的发布版本需要调试版本的MFC库。是否有人知道从何处开始查找项目,以便我们能够正确地将这些依赖项更改为发布依赖项? 使用的命令行: 对于(*.lib)中的%f,执行dumpbin/IMPORTS:msvcrt120d.dll/OUT:output.txt 编辑: 以及我得到的输出(与我指定的导入文件无关): 摘要 1B0 .CRT$XCU 15BA .bss 238 .data 5D67 .data$r 1FC0 .debug$S 1ABB2
使用的命令行: 对于(*.lib)中的%f,执行dumpbin/IMPORTS:msvcrt120d.dll/OUT:output.txt 编辑: 以及我得到的输出(与我指定的导入文件无关):
摘要
1B0 .CRT$XCU
15BA .bss
238 .data
5D67 .data$r
1FC0 .debug$S
1ABB2 .drectve
1AE68 .pdata
1CA3C .rdata
BDF0 .rdata$r
730 .rsrc$01
25F8 .rsrc$02
636 .text$di
146BCA .text$mn
F259 .text$x
597 .text$yd
3BC58 .xdata
980 .xdata$x
10 ATL$__a
10 ATL$__z
只是为了确保我们的最终构建没有调试依赖项 这是我的bat文件-
@echo off
echo Testing...
for %%v in (*.exe *.dll) do (
dumpbin /imports %%v | find /i "0d.dll" > nul
if not errorlevel 1 echo %%v is Debug
)
检查您的MFC设置。如果这些都没有问题,那么它很可能是您链接的某个库的依赖项。检查您是否链接到(第三方)库的调试版本,该库链接到MFC的调试版本。@i您好,很高兴听到您的朋友。这可能是我们链接的某个库的依赖关系。但是这些库的数量很大(超过160个),我相信我必须手动检查它们并进行检查,除非您能提出更好的解决方案?您可以自动执行此过程:在所有DLL上运行一个循环,并使用该选项执行,将其中一个调试MFC DLL作为可选文件参数传递。@IInspectable,您好,非常感谢你的帮助。请您提供一个如何使用这个的例子好吗?哦,还有一点需要澄清的是,这些不是MFC dll(正如我被告知的那样),而是msvcrt120d.dll。我们的一个模块依赖于它,我需要找到我们的哪个模块。谢谢。类似于(*.exe*.dll)中%f的
做dumpbin/IMPORTS:msvcrt120d.dll%f
应该做。最好将输出导入文本文件,以便以后可以在文本编辑器中搜索。搜索msvcrt120d.dll
将直接带您到要查找的模块。
@echo off
echo Testing...
for %%v in (*.exe *.dll) do (
dumpbin /imports %%v | find /i "0d.dll" > nul
if not errorlevel 1 echo %%v is Debug
)