所以,我遇到了问题VTK(可视化工具包) http://www.vtk.org在 Mac OSX 上工作,特别是让它在XCode https://developer.apple.com/xcode/.
(我让它工作并将在下面发布这个问题的答案)
截至 2015 年 10 月的当前设置:
- MacBook Pro 13 英寸(2015 年初)2.7 GHz i5、8GB 内存、Intel Iris
显卡 6100 (1.5GB)
- OS X 埃尔卡皮坦
- XCode 版本 7.0.1
- VTK 版本 6.1
我希望这能帮助大家在 OSX 上配置和构建 VTK 的整个过程中遇到类似问题,并正确设置 XCode 以成功构建 VTK 项目。我也希望我不会忘记任何相关的事情。如果您有疑问或看到我犯的一些错误,请评论/回答。
我将一步步讲完从构建VTK到设置XCode的整个过程。我做了很多谷歌搜索并尝试了不同的东西。另外,我将尝试提供一些屏幕截图来帮助澄清问题,特别是对于像我这样刚接触 XCode 的人。据我记得并为它们添加了书签,我也会提供帮助我进行设置的资源。
下载、构建和安装
这将主要包括此 stackoverflow 线程中的步骤:安装支持 Cocoa 的 VTK 6.1 for OSX 10.8 https://stackoverflow.com/a/17329259/3038392
-
将 VTK 源代码从 Github 克隆到您选择的目录
cd /用户/你/
克隆https://github.com/Kitware/VTK.git https://github.com/Kitware/VTK.git
cd VTK
git checkout 标签/v6.1.0
-
建立一个构建目录
mkdir VTKBuild
cd VTK构建
如果您不知道“构建”在 C/C++ 上下文中意味着什么,我建议您进一步阅读:构建 C/C++:到底发生了什么以及为什么需要这么长时间 http://voices.canonical.com/jussi.pakkanen/2012/10/01/building-cc-what-really-happens-and-why-does-it-take-so-long/
-
编辑 CMakeLists.txt
在您下载的源目录(不是 /VTKBuild 目录)中,应该有一个文件“CMakeLists.txt”。在文本编辑器中打开它并搜索以下行:
IF(APPLE)
SET(VTK_OBJCXX_FLAGS_DEFAULT "-fobjc-gc")
SET(VTK_REQUIRED_OBJCXX_FLAGS ${VTK_OBJCXX_FLAGS_DEFAULT} CACHE STRING "Extra flags for Objective-C++ compilation")
MARK_AS_ADVANCED(VTK_REQUIRED_OBJCXX_FLAGS)
ENDIF()
删除或注释这些行。如果你一开始就没有找到它们,我认为你应该很好地开始,因为这可能会在新版本中得到修复。
Source: [已解决]构建Qt 5.2.1 + VTK 6.1.0 + CMake 2.8.12.2 https://forum.qt.io/topic/40383/solved-build-qt-5-2-1-vtk-6-1-0-cmake-2-8-12-2/17
-
运行cmake脚本
更改 /VTKBuild 目录。你现在在里面/用户/你/VTK/VTKBuild
cmake ..
-
编辑CMakeCache.txt
现在我们需要在生成的 CMakeCache.txt(在 /VTKBuild 目录中)中编辑几行。
CMAKE_INSTALL_PREFIX. So make sure to use "/Users/you/" instead of "~":
CMAKE_INSTALL_PREFIX:PATH=/Users/you/VTK/VTKBuild
BUILD_SHARED_LIBS:BOOL=OFF
CMAKE_BUILD_TYPE:STRING=Debug
VTK_USE_SYSTEM_ZLIB:BOOL=ON
CMAKE_OSX_ARCHITECTURES:STRING=i386;x86_64
VTK_USE_COCOA:BOOL=ON
VTK_USE_CARBON:BOOL=OFF
CMAKE_OSX_SYSROOT:STRING=/Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
如果您按照本教程使用的 OS X 版本与我不同,则最后一个配置行的值可能会有所不同。在我的 CMakeCache.txt 中,它已经配置为正确的值。
其他来源:第一部分:在 Mac 上构建 VTK 库 https://www.cs.auckland.ac.nz/~jli023/vtk/VtkprogammingonMac.htm
-
编译VTK工程
这可能需要很长时间,您可以通过添加 -j (
+核心数)参数。这告诉您的编译器使用多个内核来编译文件,并且应该加快速度。 (您仍在 VTKBuild/ 目录中)。
make
-
现在将头文件和库复制到包含目录
进行安装
这应该在 /VTKBuild 目录中创建 /lib 和 /include 目录。我们稍后会提到它们。
这应该适用于建筑部分。 VTK 现已正确安装在您的系统上。
设置 XCode 项目
Source: 第三部分:手动创建 Xcode https://www.cs.auckland.ac.nz/~jli023/vtk/VtkprogammingonMac.htm
作为一般建议。如果配置了一些路径,请尽量使用绝对路径。特别是当我写“.../VTKBuild”之类的内容时,请将“...”替换为路径的正确部分。
-
创建一个新项目
启动 XCode 并创建一个新项目(文件 -> 新项目)。选择 OS X -> 应用程序 -> 命令行工具。单击“下一步”,为其命名,然后选择 C++ 作为“语言”。选择您想要的位置并单击“创建”完成。
-
添加了必要的框架
在左侧栏中选择您的项目,然后在中心导航至“构建阶段”。这应该给你这样的观点:
现在展开“链接二进制文件与库”行。在一个新项目中,这不应该包含任何内容。我们现在需要链接 OpenGL、Cocoa 和 IOKit 框架。您可以通过点击底部的 + 按钮来完成此操作。这将开启与一些框架的对话。只需搜索上述框架并点击“添加”即可。
我们还需要添加 zlib 库。再次点击 + 按钮,然后搜索“libz”。然后添加“lib.tbd”库。有多个版本可用,我只是添加了一个没有版本号的版本。其他人也可以工作。现在应该是这样的:
现在我们需要添加VTK库文件。它们位于 /VTKBuild/lib 目录中。它们的名称应类似于“libvtkXXX.a”。您可以将它们拖放到窗口中,也可以像上一步中的框架一样,通过文件对话框选择它们:+按钮 ->“添加其他..” ->导航到 /VTKBuild/lib ->选择所有 *.使用 Shift+Click/Cmd+Click ->“打开”打开文件。它们可能需要一段时间才能显示在界面上。
-
配置源树
打开 XCode 首选项 (CMD+,)。在顶部栏中导航至“位置”并选择“源树”。添加两行:
“名称”-“显示名称”-“路径”
vtk-debug-include vtk-debug-include ...VTKBuild/include/vtk-6.1
vtk-debug-lib vtk-debug-lib ...VTKBuild/lib
-
添加搜索路径
现在,我们需要告诉 XCode 在哪里查找其他头文件 (*.h),以便您能够在代码中“#include <...>”它们。
为此,再次在左侧栏上选择您的项目。导航到“构建设置”并输入过滤器“搜索”。应该有一个名为“搜索路径”的行,其中包含子行“标题搜索路径”和“库搜索路径”。第一个需要设置为'...VTKBuild/include/vtk-6.1',后一项为'...VTKBuild/lib'.
-
定义宏
如果你完成了上述所有事情。应构建并运行包含 VTK 头文件的项目。但为了正确运行,您可能需要在 *.cpp 文件之上、任何 #include 语句之前定义两个宏:
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
没有这些我例如遇到 vtkWindowInteractor 无法工作的问题。
就是这样!享受可视化事物的乐趣。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)