3DSlicer6:编译、调试、规范化的开发
生活随笔
收集整理的這篇文章主要介紹了
3DSlicer6:编译、调试、规范化的开发
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.編譯
Step1:CMake生成Slicer工程文件
使用Cmake生成Slicer的解決方案(Solution)包括兩小點(diǎn):
- 指定源代碼目錄:C:/myProjects/Slicer4;目標(biāo)目錄:C:/myProjects/Slicer4-SuperBuild-Debug
- Configure后,添加qmake路徑:QT_QMAKE_EXECUTABLE=C:/myProject/Qt-4.6.3/bin/qmake.exe(要根據(jù)實(shí)際情況進(jìn)行修改)。Generate后完成工程的創(chuàng)建。
Step2:編譯Slicer
打開Slicer.sln,整個工程有28個項目組成,包括我們熟悉的VTK、ITK、DCMTK、CTK等庫。鼠標(biāo)右鍵點(diǎn)擊ALL_BUILD編譯所有項目。等待編譯完成,大概3~4小時~~~
Notice1:每個項目在工程中所起到的作用不同,其編譯過程也遵循一定的順序,如果其中一個項目處想問題,那么在這個項目編譯之后的所有項目都會出錯。 Notice2:如果真的很不幸,在編譯的過程中出現(xiàn)了錯誤。考慮到重新編譯一次時間太長,可以按照輸出窗口的提示進(jìn)行糾錯,然后從此處為起點(diǎn)進(jìn)行編譯。 Notice3:工程中的VTK、ITK等項目的源代碼并沒有包含在Slicer的源碼中,他們是在編譯的過程中,利用Git或SVN向遠(yuǎn)程服務(wù)器請求下載。因此編譯速度的快慢很大程度上取決于網(wǎng)絡(luò)環(huán)境。
2.調(diào)試
編譯之后還無法對Slicer的程序進(jìn)行調(diào)試,需要以下幾個步驟: 1) cd slicer-superbuild-debug\slicer-build2) cmake.exe –VV --debug-output . ? ?(注意這里還有一個 . )
3) slicer.exe --VisualStudio slicer.sln /out buildlog.txt /build ?然后相關(guān)文件生成在切片機(jī)構(gòu)建/ bin /調(diào)試目錄
4) slicerQt-real.exe 就是調(diào)試文件.
5) slicer.exe –VisualStudio slicer.sln ?
打開VisualStudio后,瀏覽左邊的項目,將qSlicerQT設(shè)置為啟動項目,否則會被要求指定調(diào)試的項目。
3.Slicer的缺陷跟蹤系統(tǒng)
目前,Slicer已經(jīng)有超過120萬代碼,并變得越來越龐大。盡管3DSlicer管理人員在各種操作系統(tǒng)、各種硬件設(shè)備情況下調(diào)試,但由于功能復(fù)雜、代碼龐大,也會出現(xiàn)管理人員無法發(fā)現(xiàn)的問題。 為了保證Slicer軟件的質(zhì)量,以及對功能的完成度進(jìn)行控制,保證軟件開發(fā)的順利進(jìn)行,3Dslicer項目采用缺陷跟蹤系統(tǒng)Mantis對Slicer繼續(xù)管理。 缺陷管理平臺Mantis ,也做MantisBT,全稱Mantis Bug Tracker。Mantis是一個基于PHP技術(shù)的輕量級的開源缺陷跟蹤系統(tǒng),以Web操作的形式提供項目管理及缺陷跟蹤服務(wù)。個人可定制的Email通知功能,每個用戶可根據(jù)自身的工作特點(diǎn)只訂閱相關(guān)缺陷狀態(tài)郵件。報告3DSlicer應(yīng)用程序相關(guān)問題流程: 1.https://issues.slicer.org/view_all_bug_page.php在View Issues中創(chuàng)建一個話題; 2.詳細(xì)填寫問題緣由; 3.箱Slicer開發(fā)者郵箱發(fā)送一份郵件,郵件中必須包含創(chuàng)建的話題,郵件格式名稱如下:[Bug<IssueNumber>]bug名稱。如下所示:
4.規(guī)范化的3DSlicer開發(fā)
單詞縮寫的大小寫應(yīng)該保持一致,保持大寫或小寫。例如- RASToSlice ? √ ? RasToSlice ?×
- vtkMRML ? ? ?√ ? ?vtkMrml ? ?×
- vtkSlicer ? ? ? ?√ ? ?vTKSlicer ? ×
- GetWindow not GetWin
- TestMyFeature.cxx not Test-My_Feature.cxx
- 大部分注釋應(yīng)該寫在頭文件中。
- 代碼做出修改后及時更新注釋。
- 使用關(guān)鍵字“\todo”(待辦事項)來標(biāo)記點(diǎn)需要重新審視的代碼。
- 源文件中注釋掉的代碼塊也需要進(jìn)行注釋,如果需要,可以插入svn的版本鏈接作為注釋。
- 3D視圖中使用RAS坐標(biāo)。
- 所有單位為毫米表示。
- 每行代碼不超過80個字符。
總結(jié)
以上是生活随笔為你收集整理的3DSlicer6:编译、调试、规范化的开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态获取API地址
- 下一篇: 3DSlicer7:FAQ-1