【发布时间】:2010-02-05 05:14:03
【问题描述】:
我正在开发一个使用第三方 dll 和库的项目。我想使用静态 CRT (LIBCMTD) 构建我的项目,因为我希望在“IBM purifier”中运行我的应用程序。但是,第三方库是使用动态 CRT(MSVCRT) 构建的。
这给出了链接错误: MSVCRTD.lib(MSVCR80D.dll):错误 LNK2005:__mktime64 已在 LIBCMTD.lib(mktime64.obj) 中定义 MSVCRTD.lib(MSVCR80D.dll):错误 LNK2005:__gmtime64 已在 LIBCMTD.lib(gmtime64.obj) MSVCRTD 中定义。 lib(MSVCR80D.dll) : 错误 LNK2005: __localtime64 已在 LIBCMTD.lib(loctim64.obj) 中定义
我尝试了各种链接器设置。我还给链接器命令行提供了 /FORCE:MULTIPLE 以忽略多个定义并创建一个构建。它这样做了,但我的应用程序仍然无法在净化器中运行。
有没有一种好方法可以实现我想要实现的目标?我无法控制第 3 方源代码来控制他们的设置。
谢谢
【问题讨论】:
标签: visual-studio-2005 linker msvcrt crt libcmtd