Я пытаюсь отладить сложную проблему, но я обнаружил, что мой режим выпуска получает файлы PDB, но не мой режим Debug. Мне нужны PDB в режиме отладки, natch.PDB-файл, созданный в Release, но не в режиме отладки в VS 2013 Неуправляемый C++/CLI
Что происходит?
Вот в режиме выпуска опции компилятора:
/GS /GL /W3 /Gy /Zc:wchar_t /I".." /I"C:\Users\Kevin\dev\IPCommon\Cpp" /Zi /Gm- /O2 /sdl /Fd"x64\Release\vc120.pdb" /fp:precise /D "LINKMETHODS_EXPORTS" /D "_WINDLL" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /Gd /Oi /MD /Fa"x64\Release\" /EHsc /nologo /Fo"x64\Release\" /Fp"x64\Release\LinkMethods.pch"
Вот варианты выпуска компоновщика:
/OUT:"C:\Users\Kevin\dev\EXO\x64\Release\LinkMethods.dll" /MANIFEST /LTCG /NXCOMPAT /PDB:"C:\Users\Kevin\dev\EXO\x64\Release\LinkMethods.pdb" /DYNAMICBASE "LinkData.lib" /IMPLIB:"C:\Users\Kevin\dev\EXO\x64\Release\LinkMethods.lib" /DEBUG /DLL /MACHINE:X64 /OPT:REF /INCREMENTAL:NO /PGD:"C:\Users\Kevin\dev\EXO\x64\Release\LinkMethods.pgd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Release\LinkMethods.dll.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /VERBOSE /LIBPATH:"C:\Users\Kevin\dev\EXO\x64\Release\" /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\UnitTest\lib" /LIBPATH:"C:\Users\Kevin\dev\EXO\Dependencies\opencv249\bin" /TLBID:1
А вот Debug опции режим компилятора:
/GS /W3 /Zc:wchar_t /I".." /I"C:\Users\Kevin\dev\IPCommon\Cpp" /Zi /Gm /Od /Fd"x64\Debug\vc120.pdb" /fp:precise /D "LINKMETHODS_EXPORTS" /D "_WINDLL" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MDd /Fa"x64\Debug\" /EHsc /nologo /Fo"x64\Debug\" /Fp"x64\Debug\LinkMethods.pch"
И опции Debug Linker :
/OUT:"C:\Users\Kevin\dev\EXO\x64\Debug\LinkMethods.dll" /MANIFEST /LTCG /NXCOMPAT /PDB:"C:\Users\Kevin\dev\EXO\x64\Debug\LinkMethods.pdb" /DYNAMICBASE "LinkData.lib" /IMPLIB:"C:\Users\Kevin\dev\EXO\x64\Debug\LinkMethods.lib" /DEBUG /DLL /MACHINE:X64 /INCREMENTAL /PGD:"C:\Users\Kevin\dev\EXO\x64\Debug\LinkMethods.pgd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Debug\LinkMethods.dll.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /VERBOSE /LIBPATH:"C:\Users\Kevin\dev\EXO\x64\Debug\" /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\UnitTest\lib" /LIBPATH:"C:\Users\Kevin\dev\EXO\Dependencies\opencv249\bin" /TLBID:1
Я предполагаю, что в конечном каталоге вывода отсутствует 'MyProjectName.pdb', а не' vc120.pdb' в промежуточном каталоге. 'MyProjectName.pdb' генерируется компоновщиком, а не компилятором. –
Примечание: вы компилируете Unicode в Debug, но MBCS в Release. Вы используете предварительно скомпилированные заголовки в Release, но не в Debug. Вероятно, вы должны сделать это. –
Благодаря @DavidYaw, я пробовал ваши предложения. Это не сработало, но это определенно стоило того. – empty