Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试编译VTK以使用静态运行时库时,示例上出现链接错误_C++_Linker Errors_Vtk - Fatal编程技术网

C++ 尝试编译VTK以使用静态运行时库时,示例上出现链接错误

C++ 尝试编译VTK以使用静态运行时库时,示例上出现链接错误,c++,linker-errors,vtk,C++,Linker Errors,Vtk,我想编译VTK,以便它使用静态运行时库(/Mt和/MTd,在VisualStudio中)而不是VisualStudio中的动态运行时库(/Md和/MDd) 为此,我更改了VTK附带的CmakeList文件,并将以下行添加到其中: if (MSVC) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT" ) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /

我想编译VTK,以便它使用静态运行时库(/Mt和/MTd,在VisualStudio中)而不是VisualStudio中的动态运行时库(/Md和/MDd)

为此,我更改了VTK附带的CmakeList文件,并将以下行添加到其中:

if (MSVC)
    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT" )
    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}  /MTd" )
endif (MSVC)
当我尝试构建示例时,我遇到以下链接器错误:

Error   101 error LNK2005: "private: __cdecl type_info::type_info(class type_info const &)" (??0type_info@@AEAA@AEBV0@@Z) already defined in LIBCMTD.lib(typinfo.obj)   C:\Local\VTK-6.2.0\build\Examples\Tutorial\Step3\Cxx\MSVCRTD.lib(ti_inst.obj)   Cone3
如果我删除添加到CmakeList的部分,它将编译并运行所有示例

由于我的应用程序已经使用静态库,我需要确保VTK也使用静态库


如何解决此问题?

直接的方法是忽略默认库msvcrdt.lib-但我建议在像那样跺脚之前先了解这个问题

您可以使用/VERBOSE构建,搜索msvctd.lib的输出并到达加载它的第一个位置。它可能是示例使用的第三方库,或者您必须切换的另一个项目