2010-02-05 97 views
0

我正在开发一个使用第三方dll和库的项目。我想用静态CRT(LIBCMTD)构建我的项目,因为我希望在“IBM purifier”中运行我的应用程序。但是,第三方库是使用动态CRT(MSVCRT)构建的。StaticCRT(LIBCMT(D))和DynamicCRT(MSVCRT(D))冲突

这使联误差为: 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连接器命令行忽略多个定义并创建一个构建。它这样做了,但我的应用程序不能运行在净化器中。

有没有一种很好的方法来做我想要达到的目标?我无法控制第三方源代码来控制其设置。

感谢

回答

1

如果需要只使用静态库构建,你可能会大清洗 - 他们的DLL已经配置动态链接到标准库,并没有什么你在建筑物的其他部分做该项目将改变这种情况(除非您可以让该供应商提供静态链接到标准库的版本)。