[C++] Geant4 11.3.2 + Qt5 + VS2022的配置安装(Win10)

最近本人在安装Geant4时遇到了一些坑,这里将安装过程记录下来。

1. 安装CMake,Visual Studio,Qt

这里本人安装的版本如下。

  • CMake: 3.31.0
  • Visual Studio: 2022(Community)
  • Qt: 5.15.2

这三个软件的安装过程比较简单,这里不展开讨论。网上相关的教程比较多,可以自行搜索,另外也可以查阅博主往期文章 1

2. 下载 Geant4源码和数据包

进入Geant4官网下载页,选择以下内容下载。

Geant4官网下载页

3. 用CMake生成VS工程

3.1 准备工作目录

首先,解压Geant4源码压缩包到指定的工作目录下,并且创建工程文件夹和安装文件夹。
路径设置

3.2 设置路径和VS版本

设置源码路径和工程路径,点击Configure,设置VS版本。
路径设置
点击Finish后,环境列表更新,便可以修改安装路径,再点击一次Configure。
修改安装路径

3.3 编辑QT环境变量

如果QT环境变量没有找到,可能会弹出警告对话框。
配置异常
这时候,需要在CMake中按以下步骤添加环境变量。
添加环境变量
后续每次Configure后出现的NOTFOUND警告,都是按照这种步骤添加,直到不出现红色警告。
QT环境配置完成

3.4 解压Geant4数据包

CMake在生成工程的日志中,可能会出现以下警告。
数据缺失警告
此时,在安装目录下创建路径"share/Geant4/data",将下载好的Geant4数据包,解压到该路径下,再点击Configure,警告消除。
配置完成
完成上述配置后,点击Generate,便在工程目录下生成了Geant4.sln的VS工程。
VS工程建立完成

4. 用VS工程生成Geant4库

4.1 打开Geant4的VS工程

如果上述配置中,安装目录设置在C盘,那么需要用管理员权限打开VS工程,不然安装过程可能会因为权限问题无法写入文件。
这里的生成配置建议选择Release模式,Debug模式下依赖的库会超出65535,从而报"Link1189: 超过65536 对象的库限制"的错误,目前本人还没有发现解决办法,有办法的朋友可以在评论区留言相告,在此表示感谢。

4.2 修改VS的项目属性

将G4名称开头的所有工程选中,进入属性页,开启多处理器编译。
MP编译

4.3 生成库

右键选中ALL_BUILD,开始生成,该过程耗时较长,需要等待片刻。
VS生成
生成完成后,右键选中INSTALL,VS会将生成的库及依赖库整理放到安装目录下。
VS安装
至此,Geant4库安装完成。

5. 测试环境

上述安装过程中,VS会将Geant4自带的例子拷贝到安装目录下,我们可以用其中的例子B1进行测试。
B1例子所在路径

5.1 生成exampleB1应用程序

打开CMake,设置B1工程的路径,过程与第3节类似,最终配置完成后的环境如下。
B1 CMake环境
然后Generate得到B1的VS工程B1.sln,用该工程直接在Release配置下生成可执行文件exampleB1.exe。

5.2 配置运行环境
5.2.1 创建工作目录

指定或创建一个空文件夹,作为工作测试目录。将生成的exampleB1.exe与init_vis.mac,vis.mac文件拷贝到工作目录下。

5.2.2 设置Geant4环境

我们可以筛选B1程序依赖的dll库,拷贝到工作目录下作为Geant4的工作环境,但这个筛选过程比较繁琐。这里我们不采用这个方案,而是直接在系统里设置环境变量。
Geant4的环境变量

5.2.3 设置Qt环境

我们可以添加Qt环境(例如:C:\Qt\5.15.2\msvc2019_64\bin)到系统路径里,但测试时会出现多个弹窗报错。
QT环境异常
很明显,这些错误是由Qt引起的,大概率是因为Qt环境不完善或者库不兼容。稳妥的解决办法是不修改环境变量,而是将Qt环境中的库筛选放到工作目录下。首先将报错的G4库挑选出来,用Qt命令行在空文件夹中进行打包(windeployqt + 库名),这样筛选出来的Qt库,然后再放进工作目录中,最终工作目录下包含的库如下。
Qt依赖环境

5.3 运行演示

完成上述配置后,双击运行exampleB1.exe,得到如下界面。

G4 运行演示
此时测试环境成功,说明Geant4安装顺利。


  1. QT6 旧版本安装 ↩︎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值