macOS + VTK + CLion 配置安装相关

本来挺简单一件事但还是踩了一些坑,记一下吧
macOS 11.3.1 + CLion +VTK 9.0.1_9

安装步骤

HomeBrew 还是香。虽然他默认安装 VTK 最新版本已经到 9.0.1 了,不过我是新学所以还没遇见什么问题。

brew install vtk

最新的 vtk 要用 Qt@5,老版本的代码就可能会有一些问题,不过 HomeBrew 应该会也顺便安装上够用的 Qt@5。
接下来就是我遇到的一个坑orz当时 CMakeList VTK 相关是这样的

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} ${VTK_LIBRARIES})

结果找不到合适版本的 Qt,说不能用


报错

看报错他找到的是 conda 管理下安装的 Qt,解决办法是在前面加一行

set(CMAKE_PREFIX_PATH "/usr/local/Cellar/qt@5/5.15.2")

翻 CMake 手册知道这个的作用是提供一个根目录供 FIND_XXX() 命令在其中查找相应的文件。就是把 brew 管理的 Qt@5 的路径加进去。没有 Qt5 就去装一个版本够用的。brew 现在默认已经是 Qt6 了。
这时候就可以了。跑测试代码的时候我拿到的代码渲染不出窗口来,不知道是不是版本的问题,参照一个教学项目的代码动了一下之后能跑出来了。

#include "vtkRenderWindow.h"
#include "vtkSmartPointer.h"
#include 

int main() {
    vtkSmartPointer renWin = vtkSmartPointer::New();
    vtkNew iren;
    iren->SetRenderWindow(renWin);
    renWin->Render();
    iren->Start();
    return 0;
}

效果就这样


上面那个教学项目是这个 HeadBone。自己跑的话要把 main 函数里刚开始的 if 语句注释掉,然后把文件地址改成自己的路径。

reader->SetFileName("HeadBone/FullHead.mhd");

这里有个注意的是 raw 文件和 mhd 文件要放到同一个文件夹下。
效果这样


HeadBone

其他

尝试手动编译的时候还遇到了一些问题,比如注意 VTK_USE_CARBON 为 OFF,为了解决 mac 上和 Cocoa 冲突的问题。不过这个参数在我后来使用 CMake 图形界面编译看参数时发现最新版本的已经是 VTK_USE_COCOA = ON 了。看来大多数版本配置问题都是默认更新着的。
还有 Tools -> CMake -> Reset Cashe and Reload Project 可以解决一些缓存的问题,比如重置 CMake 的 prefix path 什么的。
至于 HomeBrew 的 [email protected] 说是 keg-only 的,没有符号链接到 usr/local,反正 8.2 使用者就好好手动编译吧。

很难不赞同.jpg

你可能感兴趣的:(macOS + VTK + CLion 配置安装相关)