我正在使用 Visual Studio 2010 创建大约十几个小型库,我将它们合并到一个巨大的库中。
即使我不使用 pdb 文件,我也无法解决为合并库设置调试信息的问题。
我尝试使用“/Z7”选项(obj 文件中的调试信息)编译所有内容,但链接器仍在抱怨缺少 pdb 文件!
我使用以下命令编译单个 C++ 文件:
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I..\Logging
/Z7 /nologo /W4 /WX /MP /Od /Oy-
/D WIN32 /D _DEBUG /D _LIB /D USING_RV /D _CRT_SECURE_NO_WARNINGS /D _UNICODE /D UNICODE
/Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /GR
/Fo"D:\Work\branches\DSC_LONS00107672\C++\Libs\Runtime\bin\Win32\Debug\\"
/Gd /TP /analyze- /errorReport:queue Alert.cpp ..other...sources... /MP
我使用以下方法创建小型库:
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\Lib.exe
/OUT:"D:\Work\branches\DSC_LONS00107672\C++\Bin\Win32\Debug\Runtime.lib"
/NOLOGO /MACHINE:X86
D:\Work\branches\DSC_LONS00107672\C++\Libs\Runtime\bin\Win32\Debug\Alert.obj
...other..objects...
还有巨大的图书馆:
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\Lib.exe
/OUT:"D:\Work\branches\DSC_LONS00107672\output\C++\lib\Debug\DSC.lib"
bridging.lib ...other...small...libraries
/LIBPATH:D:\Work\branches\DSC_LONS00107672\C++\ThirdParty\zlib\lib\Win32\Debug\
/NOLOGO /MACHINE:X86
D:\Work\branches\DSC_LONS00107672\C++\DSC\bin\Win32\Debug\DSC.obj
然后我将生成的库复制到一个库文件夹中,可以访问该文件夹以链接其他程序。
但是,当我将任何程序与该库链接时,我会收到很多警告,例如:
DSC.lib(ActionType.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with
'DSC.lib(ActionType.obj)' or at
'D:\src\VS2010\DSC\TestApps\LQ2Tester\bin\x64\Debug\vc100.pdb';
linking object as if no debug info
而且我无法调试应用程序
我错过了什么?