2021-05-12 14:32:11
Ubuntu上設定VTK開發環境——基於Visual Studio Code 與 GCC
環境說明
vtk版本7.1.1
visual studio 1.16.1
Ubuntu 16.04 + 自帶的gcc
編譯過程與windows下類似還好,執行自己的程式碼開始面對cmake與make的各種命令以及檔案的編譯關係一臉懵逼,特別是一堆標頭檔案的依賴和庫依賴不知道從哪加起,瞬間發現visual studio寫c++的程式碼簡直是神器。
貌似Linux下比較智慧的可以用eclipse(我喜歡的idea開發c++只有收費版),懶得折騰得太多,就選擇了個輕量級的visual studio code搭建環境試試。
建議開始前稍微熟悉下cmake+gcc的編譯模式,相關命令多基於百度Google,有問題之處歡迎交流。
vtk 環境編譯
編譯前需要先安裝opengl的執行庫sudo apt-get install freeglut3-dev
基於cmake-gui編譯,我編譯選項中主要修改為:
BUILD_SHARED_LIBS 選中 編譯可分享的庫檔案
CMAKE_BUILD_TYPE release 如果有偵錯的需要還需選中debug
CMAKE_INSTALL_PREFIX (預設位在/usr/local目錄下,make install 命令會將編譯出的靜態連結庫放入此目錄下)
VTK_USE_CXX11_FEATURES 使用c++11標準
VTK_RENDERING_BACKEND 使用opengl的版本,我的顯示卡支援opengl,不支援預設的opengl2 !!!! 設定為opengl2可以編譯成功但執行時會出錯
還可以考慮是否需要編譯Python Java等介面,是否需要編譯範例程式碼等
cmake 編譯出結果後,在輸出目錄呼叫make命令編譯(桌上型電腦core i3處理器 半個多小時)
編譯完成後 make install (不確定沒有install會不會出問題)
基於命令列編譯使用vtk執行範例程式碼
複製目錄下的程式碼檔案和cmake檔案到專案資料夾 vtk-7.1.1/Examples/Tutorial/Step1/Cxx
執行命令:
cmake ./
make
在編譯自己的程式碼時,對CMakeLists.txt檔案內容需要略作修改:
PROJECT (myVolumeRendering)
# 1. 如果提示找不到VTK則設定vtk的編譯輸出路徑
SET(ENV{VTK_DIR} /home/Hadoop/vtk-7.1.1/_bin)
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
# 2. 此處設定為自己的cpp檔案,直接新增即可
SET(SRC_FILES
myVolumeRender.cpp
MyVtkTool.cpp)
add_executable(myVolumeRendering ${SRC_FILES})
target_link_libraries(myVolumeRendering ${VTK_LIBRARIES})
設定visual studio code編譯執行範例程式碼
複製目錄下的程式碼檔案和cmake檔案到專案資料夾 vtk-7.1.1/Examples/Tutorial/Step1/Cxx
重點在於設定tasks.json檔案(呼叫cmake與make命令編譯原始碼)與launch.json檔案(生成的可執行檔案執行或偵錯)
task 檔案設定
用vs code開啟專案資料夾,ctrl+shift+p
, 輸入選擇 tasks:configure task runner
,選擇c++ 或者other會在.vscode資料夾下新建一個tasks.json檔案。 貌似需要新建build資料夾。
貼上以下內容:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"options": {
"cwd": "${workspaceRoot}/build"
},
"tasks": [
{
"taskName": "cmake",
"command": "cmake",
"args": ["-G",
"Unix Makefiles",
"-DCMAKE_BUILD_TYPE=relese",
".."]
},
{
"taskName": "make",
"command": "make",
"args": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
launch.json檔案設定
f5執行,會提示生成預設的launch.json檔案,複製以下內容
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/helloa",//此處設定可執行檔名
"args": [],//可以設定偵錯引數等
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
cmakelists.txt檔案設定
新增vtk的路徑(不修改預設的INSTALL_PREFIX路徑時不確定),此處設定為cmake的output路徑SET(ENV{VTK_DIR} /home/hadoop/vtk-7.1.1/_bin)
編譯執行
- ctrl+shift+p 輸入run task命令,執行cmake
- 可以同上執行make task(或者直接ctrl+shift+b)
- F5執行或偵錯
新增標頭檔案路徑 如果不需要程式碼補全等功能,此步可以省略。
包含標頭檔案的位置會出現綠色波浪線提示找不到標頭檔案,需要指定標頭檔案的路徑。點選標頭檔案,然後點選左方出現的黃燈,選擇某個設定選項會在.vscode目錄下新建c_cpp_properties.json檔案,在includePath與browse{path}下新增vtk的包含目錄。
在執行cmake task後,build/CMakeFiles/you_execute_name.dir/DependInfo.cmake
檔案裡有相關的包含目錄,用帶正規表示式的查詢替換選項將 "$
替換為 ",
即可新增後方的逗號。
{
"name": "Linux",
"includePath": [//作用不詳,不確定去掉的影響……
"/usr/include/c++/5",
"/usr/include/x86_64-linux-gnu/c++/5",
"/usr/local/include",
"/usr/include",
"/usr/include/x86_64-linux-gnu",
"${workspaceRoot}",
"/home/hadoop/vtk-7.1.1/_bin/Common/Core",
"/home/hadoop/vtk-7.1.1/Common/Core",
//……
"/home/hadoop/vtk-7.1.1/Utilities/EncodeString"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": { //用於程式碼補全
"path": [
"/usr/include/c++/5",
"/usr/include/x86_64-linux-gnu/c++/5",
"/usr/local/include",
"/usr/include",
"/usr/include/x86_64-linux-gnu",
"${workspaceRoot}",
"/home/hadoop/vtk-7.1.1/_bin/Common/Core",
"/home/hadoop/vtk-7.1.1/Common/Core",
//……
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
Ubuntu 14.04 安裝Visual Studio Code http://www.linuxidc.com/Linux/2016-03/129052.htm
使用Visual Studio Code開發TypeScript http://www.linuxidc.com/Linux/2015-07/119456.htm
Visual Studio Code 簡單試用體驗 http://www.linuxidc.com/Linux/2015-05/116887.htm
Visual Studio Code試用體驗 http://www.linuxidc.com/Linux/2015-07/120378.htm
Visual Studio 2010 & Help Library Manager 安裝說明 http://www.linuxidc.com/Linux/2012-11/74814.htm
OpenCV 2.3.x/2.4.x在Visual Studio 2005/2008和Visual Studio 2010設定方法詳解 http://www.linuxidc.com/Linux/2012-08/68302.htm
使用OpenCV-2.4.0.exe檔案編譯x86或x64平台Visual Studio 2005/2008/2010目標檔案 http://www.linuxidc.com/Linux/2012-08/68305.htm
Visual Studio LightSwitch增加對HTML5和JavaScript的支援 http://www.linuxidc.com/Linux/2012-06/63397.htm
Visual Studio 11:使用 C++ 開發一個最簡單的 Metro 應用 http://www.linuxidc.com/Linux/2012-06/62657.htm
Ubuntu 14.04如何安裝Visual studio Code http://www.linuxidc.com/Linux/2016-07/132886.htm
相關文章