title: 3DSlicer编译
date: 2021-08-12 19:59:50
tags:
- 3DSlicer
- 医学图像软件
categories: - 医学图像处理与医学软件
Qt编译
下载Qt并解压源码
从Qt5.15.0起,对于开源用户,Qt官方不再提供独立安装文件,且不再有bug修复版本(比如Qt5.15.1)
如果想体验Qt5.15及之后的版本,就要培养一个新技能——编译Qt源码
从编译到发布大概需要这么几个步骤:
- 从Qt官网下载源码;
- 编译源码;
- 将编译后的qmake.exe导入QtCreator或者Visual Studio;
- 使用QtCreator或者Visual Studio编译Qt项目;
- 项目发布可仍然使用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”
CMake Error at CMake/SlicerCheckCMakeHTTPS.cmake:33 (message):
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
今天的文章3ds 如何编写软件_3ds转cia工具一键转换[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/77168.html