|
現(xiàn)象:在vs2005中,建立一個(gè)空項(xiàng)目,添加一個(gè)c++文件main.cc #include<iostream> using namespace std; int main() { cout << "hello"; } 此時(shí)按f5啟動(dòng)調(diào)試,即會(huì)提示項(xiàng)目無法調(diào)試: 無法找到“xxx.exe”的調(diào)試信息,或者調(diào)試信息不匹配。未使用調(diào)試信息生成二進(jìn)制文件。
搜了一些資料,都說建立項(xiàng)目的時(shí)候不應(yīng)建立空項(xiàng)目,而應(yīng)當(dāng)建立一個(gè)console application。這樣確實(shí)可以解決問題,但,為什么在空項(xiàng)目下無法調(diào)試呢,怎樣來解決這個(gè)問題?并沒有人寫到。
其實(shí)問題在于,在空項(xiàng)目中不生成調(diào)試文件pdb,所以無法調(diào)試。 要讓項(xiàng)目生成pdb文件,需要更改: 項(xiàng)目屬性,configuration properties->linker->Generate Debug Info 從 no 改為 yes 但這樣還是不夠的,還需要更改: 項(xiàng)目屬性,configuration properties->c/c++->debug information format為/ZI 項(xiàng)目屬性,configuration properties->c/c++->optimization為Disabled 因?yàn)闉榱松蛇@個(gè)文件,需要設(shè)定debug信息的格式并關(guān)掉O2,還要更改linker生成調(diào)試信息的開關(guān)
如果有興趣diff項(xiàng)目的.vcproj文件,會(huì)發(fā)現(xiàn)更改了里面的三行配置信息: <Tool Name="VCCLCompilerTool" Optimization="0" //原來是2 DebugInformationFormat="4" //原來是0 /> <Tool Name="VCLinkerTool" GenerateDebugInformation="true" //原來是false />
|