新聞中心
環(huán)境說明
vtk版本7.1.1
visual studio 1.16.1
Ubuntu 16.04 + 自帶的gcc

創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,先為西安等服務建站,西安等地企業(yè),進行企業(yè)商務咨詢服務。為西安企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
編譯過程與windows下類似還好,運行自己的代碼開始面對cmake與make的各種命令以及文件的編譯關(guān)系一臉懵逼,特別是一堆頭文件的依賴和庫依賴不知道從哪加起,瞬間發(fā)現(xiàn)visual studio寫c++的代碼簡直是神器。
貌似Linux下比較智能的可以用eclipse(我喜歡的idea開發(fā)c++只有收費版),懶得折騰得太多,就選擇了個輕量級的visual studio code搭建環(huán)境試試。
建議開始前稍微熟悉下cmake+gcc的編譯模式,相關(guān)命令多基于百度Google,有問題之處歡迎交流。
vtk 環(huán)境編譯
編譯前需要先安裝opengl的運行庫sudo apt-get install freeglut3-dev
基于cmake-gui編譯,我編譯選項中主要修改為:
BUILD_SHARED_LIBS 選中 編譯可分享的庫文件
CMAKE_BUILD_TYPE release 如果有調(diào)試的需要還需選中debug
CMAKE_INSTALL_PREFIX (默認位在/usr/local目錄下,make install 命令會將編譯出的靜態(tài)鏈接庫放入此目錄下)
VTK_USE_CXX11_FEATURES 使用c++11標準
VTK_RENDERING_BACKEND 使用opengl的版本,我的顯卡支持opengl,不支持默認的opengl2 !!!! 設置為opengl2可以編譯成功但運行時會出錯還可以考慮是否需要編譯Python Java等接口,是否需要編譯示例代碼等
cmake 編譯出結(jié)果后,在輸出目錄調(diào)用make命令編譯(臺式機core i3處理器 半個多小時)
編譯完成后 make install (不確定沒有install會不會出問題)
基于命令行編譯使用vtk運行示例代碼
復制目錄下的代碼文件和cmake文件到項目文件夾 vtk-7.1.1/Examples/Tutorial/Step1/Cxx
運行命令:
cmake ./
make在編譯自己的代碼時,對CMakeLists.txt文件內(nèi)容需要略作修改:
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文件(調(diào)用cmake與make命令編譯源代碼)與launch.json文件(生成的可執(zhí)行文件運行或調(diào)試)
task 文件設置
用vs code打開項目文件夾,ctrl+shift+p, 輸入選擇 tasks:configure task runner,選擇c++ 或者other會在.vscode文件夾下新建一個tasks.json文件。 貌似需要新建build文件夾。
粘貼以下內(nèi)容:
{
// 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文件,復制以下內(nèi)容
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/helloa",//此處設置可執(zhí)行文件名
"args": [],//可以設置調(diào)試參數(shù)等
"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運行或調(diào)試
添加頭文件路徑 如果不需要代碼補全等功能,此步可以省略。
包含頭文件的位置會出現(xiàn)綠色波浪線提示找不到頭文件,需要指定頭文件的路徑。點擊頭文件,然后點擊左方出現(xiàn)的黃燈,選擇某個設置選項會在.vscode目錄下新建c_cpp_properties.json文件,在includePath與browse{path}下添加vtk的包含目錄。
在運行cmake task后,build/CMakeFiles/you_execute_name.dir/DependInfo.cmake文件里有相關(guān)的包含目錄,用帶正則表達式的查找替換選項將 "$ 替換為 ", 即可添加后方的逗號。
{
"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": ""
}
}, 網(wǎng)站標題:Ubuntu上配置VTK開發(fā)環(huán)境——基于Visual Studio Code 與 GCC
網(wǎng)頁網(wǎng)址:http://fisionsoft.com.cn/article/cdjojdd.html


咨詢
建站咨詢
