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

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


咨詢
建站咨詢
