Geant4采用make和cmake编译运行geant4自带例子的方法

 

该教程介绍如何将geant4中自带的例子通过camke编译成可执行文件,并运行程序。

 

1 在linux主目录下创建一个geant4_workdir目录,并将geant4自带的例子B1复制到该目录下,如图1所示,geant4自带的B1源文件所在目录为geant4安装目录,如图2所示。

Geant4采用make和cmake编译运行geant4自带例子的方法

图1

Geant4采用make和cmake编译运行geant4自带例子的方法

图2

2 复制完成后到终端并进入到B1文件里面(~/geant4_workdir/B1/),然后在终端输入make开始编译文件,开始与结果分别如图3所示,这样便完成了编译。

Geant4采用make和cmake编译运行geant4自带例子的方法Geant4采用make和cmake编译运行geant4自带例子的方法

图3

编译之后再回到~/geant4_workdir/目录下,可以看到有bin和temp文件夹,bin文件夹下装的是二进制文件exampleB1,如图4,可以直接运行。

Geant4采用make和cmake编译运行geant4自带例子的方法Geant4采用make和cmake编译运行geant4自带例子的方法

图4

3 现在开始运行exampleB1可执行文件,在终端进入刚才编译的B1文件夹,人后输入命令~/geant4_workdir/bin/Linux-g++/exampleB1,即编译生成的可执行文件的目录,运行结果见图5,并弹出可视化界面,可以在弹出的界面里输入macro文件命令执行程序

Geant4采用make和cmake编译运行geant4自带例子的方法

图5

上述方法编译的程序有一个缺点就是源程序B1和编译程序B1没分开,下面介绍源程序和编译后的程序分开执行geant4程序的过程:

 

1 同样的,首先将源程序B1复制到~/geant4_workdir目录下,然后建立一个B1-build的文件夹,如图6所示,这个B1-build文件夹就是用来生成可执行文件的。

Geant4采用make和cmake编译运行geant4自带例子的方法

图6

2 编译生成可执行文件,从终端进入到B1-build文件夹,并在终端输入命令:

cmake –DGeant4_DIR=/home/geant4.10.03-install/lib/Geant4-10.3.2 $HOME/geant4_workdir/B1

等式后面的内容分为两部分,前面是geant4安装目录,这里需要geant4安装的Geant4Congfig.cmake(如图7所示)文件来编译B1文件,因此先输入Geant4Congfig.cmake文件所在目录,后半部分是要编译的B1源文件所在目录,就是刚才复制到~/geant4_workdir目录下的B1文件,输入命令回车后得到图8 结果,这一步将源文件B1复制到了B1-build文件下,并创建了geant4头文件库可待编译源文件的连接,打开B1-build问价夹可以看到与B1源文件相同的文件,如图8所示。

Geant4采用make和cmake编译运行geant4自带例子的方法

图7

Geant4采用make和cmake编译运行geant4自带例子的方法

图8

3 现在可以进行编译了,在终端继续输入命令make –j2,2表示电脑系统的内核数,我的系统内核数为2,编译结果后会生成可执行文件exampleB1,如图9所示。

Geant4采用make和cmake编译运行geant4自带例子的方法

图9

4 现在可以执行exampleB1文件了,在终端输入./exampleB1,回车后会得到和第一种方法一样的结果。

第二种方法将B1源文件和编译生成的可执行文件B1-build分开放在了不同的目录,这样不会将源文件和可执行文件混淆,有许多好处。