macOS + VTK + CLion 配置安裝相關(guān)

本來挺簡單一件事但還是踩了一些坑,記一下吧
macOS 11.3.1 + CLion +VTK 9.0.1_9

安裝步驟

HomeBrew 還是香。雖然他默認(rèn)安裝 VTK 最新版本已經(jīng)到 9.0.1 了,不過我是新學(xué)所以還沒遇見什么問題。

brew install vtk

最新的 vtk 要用 Qt@5,老版本的代碼就可能會有一些問題,不過 HomeBrew 應(yīng)該會也順便安裝上夠用的 Qt@5。
接下來就是我遇到的一個坑orz當(dāng)時 CMakeList VTK 相關(guān)是這樣的

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

結(jié)果找不到合適版本的 Qt,說不能用


報錯

看報錯他找到的是 conda 管理下安裝的 Qt,解決辦法是在前面加一行

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

翻 CMake 手冊知道這個的作用是提供一個根目錄供 FIND_XXX() 命令在其中查找相應(yīng)的文件。就是把 brew 管理的 Qt@5 的路徑加進(jìn)去。沒有 Qt5 就去裝一個版本夠用的。brew 現(xiàn)在默認(rèn)已經(jīng)是 Qt6 了。
這時候就可以了。跑測試代碼的時候我拿到的代碼渲染不出窗口來,不知道是不是版本的問題,參照一個教學(xué)項目的代碼動了一下之后能跑出來了。

#include "vtkRenderWindow.h"
#include "vtkSmartPointer.h"
#include <vtkRenderWindowInteractor.h>

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

效果就這樣


上面那個教學(xué)項目是這個 HeadBone。自己跑的話要把 main 函數(shù)里剛開始的 if 語句注釋掉,然后把文件地址改成自己的路徑。

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

這里有個注意的是 raw 文件和 mhd 文件要放到同一個文件夾下。
效果這樣


HeadBone

其他

嘗試手動編譯的時候還遇到了一些問題,比如注意 VTK_USE_CARBON 為 OFF,為了解決 mac 上和 Cocoa 沖突的問題。不過這個參數(shù)在我后來使用 CMake 圖形界面編譯看參數(shù)時發(fā)現(xiàn)最新版本的已經(jīng)是 VTK_USE_COCOA = ON 了??磥泶蠖鄶?shù)版本配置問題都是默認(rèn)更新著的。
還有 Tools -> CMake -> Reset Cashe and Reload Project 可以解決一些緩存的問題,比如重置 CMake 的 prefix path 什么的。
至于 HomeBrew 的 vtk@8.2 說是 keg-only 的,沒有符號鏈接到 usr/local,反正 8.2 使用者就好好手動編譯吧。

很難不贊同.jpg

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容