cmake配置vs+qt+vtk

开发图形相关的软件时,qt+vtk是一个不错的搭配,qt负责gui,vtk负责底层图形渲染。初步尝试用cmake来构建解决方案,cmakelists.txt如下。

cmake_minimum_required(VERSION 3.3)

project(testproject)

# Instruct CMake to run moc automatically when needed
set(CMAKE_AUTOMOC ON)
# Create code from a list of Qt designer ui files
set(CMAKE_AUTOUIC ON)

# cmake通常找不到qt5的路径,这里手动设置一下吧,当然也可以在cmake-gui上根据报错的提示来设置
#set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "c:\\Qt\\Qt5.12.2\\5.12.2\\msvc2017_64\\lib\\cmake\\Qt5")

# Find the needed Qt libraries
find_package(Qt5 COMPONENTS
Core Gui Widgets REQUIRED)

# VTK相关target
find_package(VTK REQUIRED)
# 该命令是必须的,否则构建出的项目运行时会有初始化的问题
include(${VTK_USE_FILE})

# support for out-of-source build
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)

# Populate a CMake variable with the sources
set(SRC
test.h test.cpp
test.ui test.qrc
main.cpp
)

set(UI test.ui)
set(RCC test.qrc)

# Assign filters. Optional, but useful.
# 对于使用visiual studio加qt-vsaddin开发来说,形成相应的过滤器
source_group("Form Files" FILES ${UI})
source_group("Resource Files" FILES ${RCC})
# 让这个过滤器为空吧。因为用vs+vsaddin直接建立qt项目时,会产生这个过滤器,但也不会自动添加产生的moc文件,不知道原因,
# 因此就空着吧。
source_group("Generated Files")

# 添加target的所有相关源文件
# WIN32也是必须的,This makes it a GUI executable instead of a console application.
add_executable(testproject WIN32 ${SRC})
# 添加target对QT和VTK的所有依赖库,包括相应的头文件,这里会自动识别。
target_link_libraries(testproject ${QT_LIBRARIES} ${VTK_LIBRARIES})

可以成功生成qt+vtk的visiual studio解决方案。但存在一个问题,生成的项目和vs直接新建的qt项目不同,没有带有qt相关的信息,例如在项目上点右键,没有qt相关的信息,例如添加class等。这条路适合打包已有完整的解决方案,但不太适合从零开始构建一个项目。

其实想想也正常,cmake只负责qt和vtk形成visiual studio的解决方案,而vs和qt的项目属性级别的深度集成是 Qt VS Tools(qt-vsaddin)负责的,cmake无从知道这些信息。

原文地址:https://www.cnblogs.com/ljy339/p/10715952.html

时间: 2024-10-29 10:15:03

cmake配置vs+qt+vtk的相关文章

学习用CMake来编写Qt程序

最近开始学习CMake,因为项目需求需要用到Qt,自带的qmake会出现许多问题(比如文件修改之后有时候qmake不会侦测到不会重新编译,需要手动去编译等),于是开始尝试使用CMake来编写Qt程序,顺便学习一下怎么用CMake来使用find_package,也算给自己一次学习的机会. 切入正题,CMake对于一些有名的库都有自带文件夹中Modules里.cmake文件查询的支持,比如你需要编写Qt程序,你就可以去cmake_dir/Moudles/查找 FindQt4.cmake这个文件,里面

AndroidStudio用Cmake方式编译NDK代码(cmake配置.a库)

1.cmake是什么? CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake. 谷歌从AndroidStudio2.2以上就添加了Cmake方式来编译NDK代码,并从NDK例子看出,默认编译的方式就是cmake方式.   2.谷歌官方的用cmake方式编译NDK的教程 谷歌从AndroidStudio2.2以上就添加了Cmake方式来

Learning Qt4 (Note 1 ----环境配置与Qt结构)

1.Qt4 安装 硬件平台: Intel X64    软件平台:opensuse 42.1 $sudo zypper update $sudo zypper in qt-creator libqt4 libqt4-devel libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite libqt4-sql-x11libQtWebKit4 libQtWebKit4-devel qt4-x11-tools 2.Qt4 SDK 组成 1.Qt Creator (Qt

OpenCV3.3.0 + CLion + CMake 配置(Mac巨细无敌版)

目录 开始 完成了 参考链接: 1,cmake编译 http://blog.csdn.net/baidu_36316735/article/details/53168438 2,CLion导入opencv http://blog.csdn.net/xiangxianghehe/article/details/71438789 另外在VS中配置opencv3可以参考我的这篇博文: OpenCV3.2.0+VS2017环境配置与常见问题(巨细坑爹版) 另外:mac + pycharm 可以参考我这篇

配置windows qt开发环境

1.解压缩MinGW-gcc440_1.zip.将解压后的文件夹复制至C盘根目录下.2.安装qt-creator-win-opensource-2.5.2.3.安装qt-win-opensource-4.7.3-mingw.不要更改默认安装目录.4.打开QT creator,菜单-->工具-->选项-->构建和运行(左边栏)-->工具链-->点击"手动设置",点击右边栏的add按钮,选中"MinGw"选项,在窗口下边找到"编译

cmake 配置

罗列一下cmake常用的命令.CMake支持大写.小写.混合大小写的命令. 1. 添加头文件目录INCLUDE_DIRECTORIES 语法:include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用.include_directories(../../../thirdparty/comm/include) 2. 添加需要链

CMake配置工程链接库

CMake是一款优秀的C/C++项目构建工具.而C/C++项目经常使用一些第三方库,如boost.luajit等.而在CMake下大致有3种方式将C/C++库引入工程. find_packagefind_package是CMake原生使用的库查找命令.使用方式如下 find_package(Boost REQUIRED)find_package(SDL2 REQUIRED)if(Boost_FOUND) #这些变量的名称没有标准,去CMakeCache.txt里看产生什么变量. message(

VTK 6.1 安装配置

安装可以参考http://blog.csdn.net/jasonleesjtu/article/details/8211692 过程大致一样. VTK 6.1 相对于VTK 5 在目录结构方面有很大的改动,很多lib文件的名字都换掉了.所以配置部分按上文无法成功.此时可以借助CMake配置文件. cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR) project(Cylinder) find_package(VTK REQUIRED) includ

ubuntu18.04 中使用cmake 时候配置qt模块的路径的问题

在ubuntu18.04中,使用cmake时候有两个地方配置了qt模块的路径,一个是/usr/lib/x86_64_gnu_linux/cmake/,另外一个地方是/opt/Qt5.13.0/5.13.0/gcc_64/lib/cmake,如果在qt creator中打开CMakeLists.txt ,那么调用的是第二个路径,如果在单独使用cmake命令,那么调用的是第一个路径,两个路径会有所不同,注意区分 原文地址:https://www.cnblogs.com/eastgeneral/p/1