Win10 64位系统下VS2015编译Geant4 10.2 + QT 5.6的过程小结(转载自天涯沦落人的新浪博客)
写在前头:首先感谢天涯沦落人大神,指点很有用,不过不知道为啥你发的新浪博客图片老是挂掉,为了方便,我趁着图片正常的时候转载到了自己的博客里以备查询,如果介意可随时留言让我删掉
基本软件:CMake 3.4.1、GEANT4 10.2、QT 5.6 beta(此版本开始提供VS2015的二进制预编译包)、VS 2015
预备工作
GEANT4 Release 10.2这个版本在Win下有个小bug,需要如下修改,否则编译出来的例子会报G4interfaces.dll错误:
源码 /source/interfaces/basic/src/G4UIQt.cc 的196行(masterG4coutDestination = this;)注释掉。
(1)32位编译方法
QT安装32位版本:qt-opensource-windows-x86-msvc2015-5.6.0-beta.exe
启动CMake-GUI,编译器选择VS2015 32位版本。参考下图设置:(关键是勾选QT后,需要Add Entry,添加一个CMAKE_PREFIX_PATH项,类型PATH,值为QT 5.6安装目录,目录指定到msvc2015这一层)
configure和generate都很成功。
然后转到build目录下,运行Geant4.sln,开始漫长的编译工作了~
编译成功后,要运行例子的话,需要先更改一些代码:
上面Geant4的build目录下的Geant4Config.cmake文件修改如下:
注释掉 find_package(Qt4 REQUIRED) 这一行,因为我们用的Qt5,不需要Qt4。
接下来就编译例子B2a,如图:
然后编译,设置各种DATA相关的环境变量,成功后运行可以看到界面:
(2)64位编译方法
64位编译时,QT也要安装相应的64位版本(文件名带_64的那个二进制包,qt-opensource-windows-x86-msvc2015_64-5.6.0-beta.exe)。
启动CMake-GUI,编译器选择VS2015 64位版本。参考下图设置:
64位编译时会出现大量MSB6006错误,方法Google一下后发现需要修改 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets 文件,记得先备份。修改内容为去掉<CustomBuild 到 </CustomBuild>的这部分代码。
其它部分参考32位编译方法。