受欢迎的博客标签

vs C++调试release版的dll步骤

Published

工程项目上右键 -> 属性
2.c++ -> 常规 ->调试信息格式     选      程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)
3.c++ -> 优化 ->优化     选     禁止(/Od)
4.连接器 ->调试 ->生成调试信息 选     是 (/DEBUG)

然后就可以像在debug模式下一样,进行调试了。
 

这是release调试的方法!普通的exe程序就能用这种方式

 

dll在此基础上进行如下的内容:

 假设有两个项目,TestExe和TestDll,由项目名字就知道用途了。如果要调试TestDll源码的话,需要做如下设置:
1.在VS2012开发环境中右击TestDll项目,选择【属性】->【Debug】->【Command】中输入TestExe的全路径名(例如:C:\TestExe\Debug\TestExt.exe)。
2.确保TestDll的输出和TestExe输入的DLL为同一文件。
3.在TestDll项目中直接启动调试即可。

vs2019设置项目为Release 版本方法

点击方案->右键->属性

选择配置管理器

Error

D:\Thirdprogram2\vs2019\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1369,5): warning MSB8012: TargetPath(F:\stock\TskingVS2019\src\Client\Bin\StkLib.dll) 与 Linker 的 OutputFile 属性值(F:\stock\TskingVS2019\src\Client\Bin\StkLib30D.dll)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
1>D:\Thirdprogram2\vs2019\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1371,5): warning MSB8012: TargetName(StkLib) 与 Linker 的 OutputFile 属性值(StkLib30D)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
1>AfxCore.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/SAFESEH”规范)

reason

VS中warning MSB8012:TargetPath与 Linker 的 OutputFile 属性值不匹配.

 

fixed StkLib项目编译错误 StkLib30D.DLL

 src/Client/StkLib/Src/StkLib_vc90.vcxproj 

    <OutDir>../../Bin/</OutDir>
    <IntDir>../../Bin/</IntDir>
    <LinkIncremental>true</LinkIncremental>
    +<TargetName>$(ProjectName)30D</TargetName>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <OutDir>.\Release\</OutDir>

 

see:https://blog.csdn.net/agassy/article/details/50493183