静态链接C ++ 2010失败

时间:2013-02-05 12:24:41

标签: c++

我的目标是通过静态链接来避免安装Microsoft C ++ 2010。因为我不知道是否会在所有客户计算机上安装该软件包,并且他的IT部门不允许安装软件。

另一种选择是避免使用管理权限。 (例如,在我的程序所在的目录中提取dll)

我找到了一个可能的解决方案http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/ab187afb-3af0-44ba-a03c-dde9e5208a1a/,我尝试了参数/ MT。

我有2个错误:

  

Erreur 1错误LNK2019:symbole externenonrÚsolu__CrtDbgReportW   rÚfÚrencddansla fonction“void __cdecl std :: _ Debug_message(wchar_t   const *,wchar_t const *,unsigned int)“   (?_Debug_message @ std @@ YAXPB_W0I @ Z)C:\ Users \ philippe \ Downloads \ Portable   设备COM API示例\ C ++ \ libcpmtd.lib(stdthrow.obj)WpdApiSample

     

Erreur 2错误LNK1120:1 externes non   rÚsolusC:\ Users \ philippe \ Downloads \ Portable Devices COM API   示例\ C ++ \ Debug \ WpdApiSample.exe 1 1 WpdApiSample

我是好的方式吗?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

“要求”部分的_CrtDbgReportW文档说明:

  

库:仅调试C运行时库的版本。

这意味着库的发布版本中不存在此类函数,因此,代码的发行版本不应该调用它们。

根据this table,您可以使用/MTd,以便链接到静态调试版本。

答案 1 :(得分:1)

/ MT for release configuration,/ MTd for debug