3DSlicer编译

3DSlicer编译title 3DSlicer 编译 date 2021 08 1219 59 50tags 3DSlicer 医学图像软件 categories 医学图像处理与医学软件 Qt 编译下载 Qt 并解压源码从 Qt5 15 0 起 对于开源用户 Qt 官方不再提供独立安装文件 且不再有 bug 修复版本 比如 Qt5 15 1 如果想体验 Qt5 15 及之后的版本 就要培养一个新技能 编译 Qt 源码从编译到发布大概需要这么几个步骤 从 Qt 官网下载源码 编译源码 将编译后的 qmake exe 导入 Qt


  • 3DSlicer
  • 医学图像软件
    categories:

  • 医学图像处理与医学软件

Qt编译

下载Qt并解压源码

从Qt5.15.0起,对于开源用户,Qt官方不再提供独立安装文件,且不再有bug修复版本(比如Qt5.15.1)

如果想体验Qt5.15及之后的版本,就要培养一个新技能——编译Qt源码

从编译到发布大概需要这么几个步骤:

  1. 从Qt官网下载源码;
  2. 编译源码;
  3. 将编译后的qmake.exe导入QtCreator或者Visual Studio;
  4. 使用QtCreator或者Visual Studio编译Qt项目;
  5. 项目发布可仍然使用windeployqt.exe

下载并解压源码

下载后解压即可,为了节省后面折腾的时间,我建议你解压到 “d:\qtsrc”这个目录。简单说一下,放在哪个盘是你自己决定的,需要保证这个盘有100GB+的剩余空间就行。为什么我起了qtsrc这个目录呢,因为默认的文件夹名字“qt-everywhere-src-5.15.0”名字太长,在windows下编译时,可能编译了几个小时后出现奇怪的错误,因为它调用的脚本处理不了太长的路径。

编译QT

编译环境选择:MinGW/MSVC

在Windows上,有两个预构建环境可供选择:一个是 MinGW ,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。

这两者的区别如下:

当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。

我选择MSVC,打开安装VS时自带安装的MSCV:x64 Native Tools Command Prompt for VS 2019

 Visual Studio 2019 Developer Command Prompt v16.4.5 Copyright (c) 2019 Microsoft Corporation [vcvarsall.bat] Environment initialized for: 'x64' C:\Program Files (x86)\Microsoft Visual Studio\2019\Community> 

默认编译的结果是64位的Qt

如果你想编译32位版本的qt,可以选择x86 Native Tools Command Prompt for VS 2019

警告:不要使用 Developer Command Prompt for VS 2019

编译

在D盘新建一个目录用来存放编译好的内容:D:\qt

x64 Native Tools Command Prompt for VS 2019的终端进入Qt源代码目录:

C:\Users\peter\Downloads>cd qt-everywhere-src-5.14.1 C:\Users\peter\Downloads\qt-everywhere-src-5.14.1> 

1.修改源码里的qtbase\mkspecs\common\msvc-desktop.conf文件

修改-MD为-MT

修改前:

QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD QMAKE_CFLAGS_DEBUG = -Zi -MDd 

修改后:

QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MT QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT QMAKE_CFLAGS_DEBUG = -Zi -MTd 

D的意思是动态编译(dynamic link),T的意思是静态编译(static link)。 这一步官方教程没有要求,但其他人的很多教程里都有写,我就加上了

2.配置config文件:

配置命令如下:

configure.bat -static -prefix "D:\qt" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp 

-skip qtwebengine 不知道可不可以加进来

configure -static -prefix "C:\QtBuildD" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -skip qtwebengine -opengl desktop -mp 

具体含义如下:

configure.bat -static #指明是静态编译 -prefix "D:\qt" #指明安装的目录 -confirm-license -opensource #指明是开源版本的qt -debug-and-release #指明需要debug版和release版,可以单独选择release版 -platform win32-msvc #指明使用msvc编译,这里的win32并不指32位 -nomake examples -nomake tests #不编译样例 -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg #可选插件 -opengl desktop #用系统自带的opengl -mp #多核编译 -skip qtwebengine这个参数不能省略,qtwebengine模块有需要依赖的库,这里不跳过编译会失败。 
C:\Users\peter\Downloads\qt-everywhere-src-5.14.1>configure.bat -static -prefix "D:\qt" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp + cd qtbase + C:\Users\peter\Downloads\qt-everywhere-src-5.14.1\qtbase\configure.bat -top-level -static -prefix "D:\qt" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp Notice: re-mapping requested qmake spec to unified 'win32-msvc'. Bootstrapping qmake ... .... Qt is now configured for building. Just run 'nmake'. Once everything is built, you must run 'nmake install'. Qt will be installed into 'D:\qt'. Prior to reconfiguration, make sure you remove any leftovers from the previous build. 

3.make

上面提到过在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。

我选择的是msvc环境,使用命令nmake即可进行编译。

nmake 

我的CPU是i7-8565U,CPU100%运行,花费了大约3个小时。

make完成后源码和编译后的共有26G

4.make install

使用nmake单线程install:

nmake install 

安装完成后,QT的文件夹有4G

编译QtWebengine

刚才输入的configure,里面有个-skip qtwebengine,是的,如其名,把QtWebengine模块给跳过去了,为什么跳过去呢,因为编译它实在是太复杂了,它的代码量堪比其他所有模块的代码量之和。编译时长也比其他所有模块编译的总时长还要长。

而且,它只支持64位,所以为了兼容32位,我们要换个工具,VS2019安装目录下的x64_x86 Cross Tools Command Prompt for VS 2019。

打开这个x64_x86工具,我建议你再做几个准备工作:

1)把QtWebengine源码拷贝到根目录,比如D:\Qt\qtwebengine

2)新建一个文件夹,比如D:\Qt\bwe (寓意BuildWebEngine),当然啦,这个盘也要有100GB+的剩余空间

然后就开始吧:

在x64_x86控制台下

 cd d:\Qt\bwe 

输入

C:\QtBuild\bin\qmake.exe C:\qtwebengine 

(可以直接用刚才编好的5.15的qmake

报错

Running configuration tests... Done running configuration tests. Configure summary: Qt WebEngine Build Tools: Use System Ninja ....................... no Use System Gn .......................... no Jumbo Build Merge Limit ................ no Developer build ........................ no Note: The following modules are not being compiled in this configuration: webenginecore webengine webenginewidgets pdf pdfwidgets WARNING: Tool gperf is required to build QtWebEngine. WARNING: QtWebEngine will not be built. WARNING: QtPdf will not be built. Qt is now configured for building. Just run 'nmake'. Once everything is built, you must run 'nmake install'. Qt will be installed into 'C:\QtBuild'. Prior to reconfiguration, make sure you remove any leftovers from the previous build. 
安装Gperf

Gperf from http://gnuwin32.sourceforge.net/packages/gperf.htm。设置PATH路径。

WARNING: Tool bison is required to build QtWebEngine. 
安装Bison

安装Bison and flex from https://sourceforge.net/projects/winflexbison/ (Rename win-bison.exe to bison.exe and win-flex.exe to flex.exe)。重命名win_bison 为Bison win-flex为flex.exe ,设置PATH路径。

Perl

http://strawberryperl.com/

 nmake 

(然后等着吧,几个小时)

如果没有报错,就可以愉快的

 nmake install 

有一点我不确定,就是在上面输入C:\Qt\Qt-5.15.0\bin\qmake.exe d:\Qt\qtwebengine时,是否会把debug和release版本都编了。因为我在编译QtWebengine时还没有编译Qt的release版,所以编译出的QtWebengine也只有debug版。之后我又用C:\Qt\Qt-5.15.0\bin\qmake.exe -release d:\Qt\qtwebengine编译了QtWebengine的release版,才算补充完整。

error: “Couldn’t resolve host name”

DLL缺失

C:\D\S4D\VTK-build\bin\Debug; C:\Slicer\ITKv4-build\bin\Debug; C:\Slicer\teem-build\bin\Debug; C:\Slicer\LibArchive-build\bin\Debug; C:\Slicer\DCMTK-build\bin\Debug; C:\Slicer\OpenIGTLink-build\bin\Debug; C:\Slicer\tcl-build\bin; C:\Slicer\SlicerExecutionModel-build\ModuleDescriptionParser\bin\Debug; C:\Slicer\CTK-build\CTK-build\bin\Debug; C:\Slicer\CTK-build\PythonQt-build\Debug; C:\Qt5.15\5.15.0\msvc2019_64\bin 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200209.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:19
下一篇 2026年3月20日 上午11:19


相关推荐

  • 莫比乌斯反演定理的证明。

    莫比乌斯反演定理的证明。莫比乌斯反演定理的证明 ps ps ps 初学给自己做个笔记 怕以后忘了 前置知识 莫比乌斯函数 mu 的两个性质 1 d n d n 1 1 sum limits d n mu d n 1 1 d n d n 1 2 d n d d n n2 sum limits d n dfrac mu d d dfrac varphi n n 2 d n d d n n 这里证明用不到 定理 若有定义在 N N N 上的函数 F

    2026年3月17日
    2
  • Glance详解_glance of

    Glance详解_glance ofGlance简介Glance是OpenStack平台中负责镜像服务的组件,其功能包括系统镜像的查找、注册和获取等,简单来说glance的功能就是用户可以通过其提供的RESTAPI查询和获取镜像元数据。glance负责OpenStack中的ImageService,那么Image是什么,简单来说Image就是一个模板,里面包含各种常用的操作系统和软件,这样用户在租用OpenStack服务后就…

    2025年7月26日
    6
  • 小程序轮播图测试用例

    小程序轮播图测试用例图片1图片2图片3图片4图片5图片6

    2022年5月20日
    43
  • 如何在 Windows 上 使用 ONLYOFFICE 协作编辑文档「建议收藏」

    1、说明——可以加我qq504284沟通。ONLYOFFICEDocumentServer提供文档协作的服务功能,支持Word,Excel和PowerPoint以及国产WPS的协作。但是这里告诉我们,需要进行文档管理和存储的二次开发。它api里现成的开发好的文档管理平台,有java,node.js,PHP等,可能不具备权限功能吧。Pleasenote,thatONLYOFFICE…

    2022年4月6日
    481
  • js中如何判断数组中包含某个特定的值_js数组是否包含某个值

    js中如何判断数组中包含某个特定的值_js数组是否包含某个值array.indexOf判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1letarr=[‘something’,’anything’,’nothing’,’anything’];letindex=arr.indexOf(‘nothing’);#结果:2array.includes(searchElement[,fromIndex])判断一个数组是否包含一个指定的值,如果存在返回true,否则返回false。参数:search..

    2022年8月31日
    14
  • 竣达技术丨设备云监控管理平台[通俗易懂]

    竣达技术丨设备云监控管理平台[通俗易懂]竣达技术丨设备云监控管理平台是用于集中式管理和查看远程监控设备的运行状态,用户可先关注平台微信公众号,再扫码关注对应设备,就可以随时随地的查看设备的运行状态,并能及时接收微信推送的设备告警信息,满足物联网、无人值守、远程监控需求的集中管理平台。

    2022年7月25日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号