c++ - 如何链接到 Windows 7 64 位 Visual Studio 2012 中的 VTK 库?

标签 c++ visual-studio-2012 vtk

我的系统规范是: a) Windows 7 家庭高级版 64 位 b) Visual Studio 2012 专业版。

我使用 cmake 2.8.12.2 从源代码编译了 VTK 6.1.0 下面简要概述了构建中涉及的路径和过程(库是使用 SHARED_LIBS = ON 构建的,因为我需要包装 python 和包装需要使用 SHARED_LIBS 构建) : a) 我将源代码解压缩到 C:\Libraries\VTK-6.1.0 并在其中创建了一个文件夹\build b) 我在启用英特尔 TBB 选项的情况下进行了配置和生成。 c) 配置类型是 MinSizeRel(我猜这只是 Release only。)我只是从 CMAKE 配置类型中删除了 Debug 选项,其余部分保持不变。当我最终构建它时,它是在 MinSizeRel 中构建的。

d) 然后我在\build 文件夹中打开 ALL_BUILD 项目并构建库 e) 随后我以管理权限运行了 INSTALL 项目。

然后我看到在 C:\Program Files\VTK 中创建了 bin 、 include 和 lib 文件夹并填充了文件

然后我写了一个取自 VTK 维基页面的示例 VTK 代码。我将附加包含目录设置为 C:\Program Files\VTK\include 和 tbb 包含目录。 对于其他库目录,我使用了 C:\Program Files 中的\VTK\lib 文件夹和 tbb lib 目录。

现在,当我尝试构建项目时,我遇到了以下链接错误,我在下面提到了其中之一:

vtk_1.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class vtkPolyDataMapper * _cdecl vtkPolyDataMapper::New(void)" (_imp_?New@vtkPolyDataMapper@@SAPEAV1@XZ)

我尝试了很多方法,但没有任何效果。我尝试过的一些不成功的事情是:-

  1. 在调试和 Release模式下将 visual studio 项目的配置类型从 win32 更改为 x64

2) 在项目的库目录中提供VTK和TBB的DLL文件的路径。

我对visual studio不是很了解。我只是作为一名程序员使用 C++,很少在 Visual Studio 中工作。在我看来,这里并没有以某种方式链接到 obj 文件。我该如何纠正这种情况?

乌吉瓦尔

最佳答案

根据 How to Get VTK Working on Your Home Machine ,您可能还需要在 Properties 的 Additional Dependencies 中放置几个​​文件名。

一般来说,Visual Studio project Properties有三个信息。首先,在 VC++ Directories 下的 Include Directories 中包含目录。第二个是 VC++ Directories 下的 Library Directories 中的库目录。最后一个是 Additional Dependencies at Input under Linker。我看到你做了前两件事,所以请试试最后一件事。

另外,根据设置,您可能需要将 dll(动态链接库)放在您的可执行文件所在的同一文件夹中。

VTK 的另一件事,请确认您运行 INSTALL 项目。我在我的 VTK 6.3 项目中看到了 ALL_BUILD、INSTALL 和 ZERO_CHECK 项目。我相信 INSTALL 项目实际上会将 VTK 安装在某个文件夹中,例如 Program Files/VTK。

关于c++ - 如何链接到 Windows 7 64 位 Visual Studio 2012 中的 VTK 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22745939/

相关文章:

c++ - 如何在 Windows 窗体项目中创建 VTK 项目 (VisualC++ 2012)

c++ - 从具有 std::shared_ptr 的函数返回时,堆分配对象是否保证存活?

visual-studio - 如何在 Visual Studio 2012 中设置环境变量?

visual-studio-2012 - TFS2012:调用线程无法访问此对象,因为其他线程拥有它

c++ - QT & VTK 交互风格

c++ - 如何告诉 VTK 管道使用通过 TimerEvent 更新的新 vtkPolyData?

c++ - 为什么在用花括号初始化结构时会出错?

java - 为什么在 C++/Java 和类似语言中以美元符号开头的变量名不好?

c++ - GCC 的 decltype(auto) 不符合标准?

visual-studio - 如何禁用可能由Visual Studio生成的MSI日志文件