b.Geant4安装指南文档

目录

第一章 从源代码构建和安装Geant4

第二章 通过包管理器安装geant4

2.1 在 Linux / macOS 上Spack

2.2 在 macOS/Linux 上Homebrew

2.3 在 Linux/macOS 上Conda

2.4 Macports

2.5 Linux系统包管理器

2.6 LCG CVMFS版本的CentOS7和Ubuntu Linux

2.6.1 Geant4系统/软件必备事项

2.6.2从源代码构建和安装

2.6.3 后安装设置

2.6.4如何使用Geant4 Toolkit库

2.6.5附录


在计算机上通过二进制包或从头编译安装Geant4有几种方法,下面将介绍这些方法。哪一个可用或最适合您取决于您的操作系统和使用需求。在所有情况下,始终使用最新的Geant4版本,以确保使用最新的错误修复程序、特性,并帮助开发人员和社区提供快速的用户支持。

第一章 从源代码构建和安装Geant4

Geant4使用CMake配置一个构建系统,用于从零开始编译和安装工具包头文件、库和支持工具。遵循这种方法,为了了解操作系统和软件需求请参阅Geant4系统/软件必备事项(2.6.1),然后是从源代码构建和安装(2.6.2)。

虽然我们已经尽了一切努力使这个安装方法的鲁棒性和可靠性,但众多的平台和系统配置意味着我们不能保证问题不会在除支持和测试平台所列的平台上遇到。

如果在构建和安装Geant4时出现问题,我们欢迎通过我们的论坛提出问题和反馈。为了帮助我们尽快处理您的问题,请尽可能多地包括您所遇到的问题的细节。至少,你应该让我们知道平台和操作系统版本,c++编译器类型和版本,CMake版本,以及任何错误消息。它还有助于列出您使用的命令序列,以便我们可以尝试重现这个问题。

如果你觉得你在Geant4 CMake构建中发现了一个真正的bug,请报告给我们的Bugzilla上的CMake类别。就像给论坛Discourse的报告一样,请包含尽可能多的信息,以便我们可以对bug进行分类并快速追踪。我们也欢迎通过Discourse和Bugzilla对系统提出一般的功能要求和反馈。

第二章 通过包管理器安装geant4

警告:这些包不是由Geant4开发人员维护的,而是由社区的助手成员维护的。请通过每个包管理器的标准渠道报告任何安装问题或要求打包最新版本/补丁。如果您打包了Geant4,并希望添加到下面的列表中,请通过我们的论坛联系我们。

2.1 在 Linux / macOS 上Spack

SpackGeant4包安装可用指令:

$ spack install geant4

 Spack允许安装Geant4的不同变体,并查看它们的运行情况:

$ spack info geant4

2.2 在 macOS/Linux 上Homebrew

HomebrewGeant4公式安装可用指令:

$ brew install geant4

2.3 在 Linux/macOS 上Conda

一个用于Geant4的Conda包可以通过Conda -forge获得,并且可以通过下方指令安装进入环境:

$ conda create -c conda-forge --name <my-environment> geant4
$ conda activate <my-environment>

 进一步的信息和支持请查看相关的源码

2.4 Macports

MacPorts为Geant4提供了一个端口,可用下方指令安装:

$ sudo port install geant4

2.5 Linux系统包管理器

一些Linux发行版通过其系统包管理器(直接或通过社区存储库)提供Geant4。Repology提供部分列表及详细信息链接:

-命名为geant4的包

-命名为geant的包(但请注意“Geant4”中的“4”不是该版本的一部分!)

2.6 LCG CVMFS版本的CentOS7和Ubuntu Linux

如果您的平台可以使用或安装了CVMFS, 那么 Geant4 可以通过来自 CentOS7 的 sft.cern.ch 存储库的 LCG 版本获得。Ubuntu 18.04/20.04软件在少数几个版本是可用的。

2.6.1 Geant4系统/软件必备事项

操作系统/软件先决条件

必须存在以下源代码/软件才能构建/安装 Geant4 或使用它开发应用程序:

-Geant4 工具包源代码

-支持 C++11 标准的 C++ 编译器和标准库:

        -Linux:GNU Compiler Collection 4.9.3 或更高版本。

        *强烈建议使用发行版的包管理系统提供的 GCC 编译器,除非它不满足最低版本要求。

        -macOS:Apple Clang (Xcode) 11 或更高版本。

        *还必须通过从终端运行 xcode-select --install 来安装命令行工具。

        -Windows:Visual Studio 2019,社区版或更高版本。

     编译器和标准库至少需要支持 C++11 标准的以下特性:
        – 模板别名,如 N2258 中所定义。
        – 自动类型推导,如 N1984 中所定义。
        – 委托构造函数,如 N1986 中所定义。
        – 枚举前向声明,如 N2764 中所定义。
        – 显式转换运算符,如 N2437 中所定义。
        – 覆盖控制最终关键字,如 N2928、N3206 和 N3272 中所定义。
        – Lambda 函数,如 N2927 中所定义。
        – 空指针,如 N2431 中所定义。
        – Override 控制覆盖关键字,如 N2928、N3206 和 N3272 中所定义。
        – 基于范围的,如 N2930 中所定义。
        – 强类型枚举,如 N2347 中所定义。
        – 统一初始化,如 N2640 中所定义。

-CMake 3.8 或更高版本。

在 Linux 上,我们建议您使用发行版的包管理系统提供的 CMake,除非它不满足最低版本要求。 在这种情况下,我们建议您使用最新版本的 CMake 的 Linux 二进制安装程序安装它,可从 Kitware 下载站点获得说明。 这个安装程序是高度便携的,应该适用于绝大多数发行版。

在 macOS 和 Windows 上,默认情况下不安装 CMake,因此我们建议您使用 Kitware 下载站点提供的最新 Darwin64 dmg (macOS) 或 Win32 exe (Windows) 安装程序进行安装。 在 macOS 上,您还可以使用 Homebrew Macports 包管理器来安装所需的版本。

有关 CMake 的更多信息,请参阅 CMake 帮助和文档

支持和测试平台

Geant4 官方支持以下操作系统和编译器组合:

-CentOS 7 Linux with GCC >=4.9.3, >=5.4, >=6.3, >=7.3, >= 8.2, >= 9.2, >= 10.2 64bit。

        可以通过免费的 Developer Toolset 包在 CentOS7 系统上安装所需的最低 GCC 版本。

        Geant4 已经在其他 Linux 发行版上成功编译,包括 Debian、Ubuntu 和 openSUSE。主要要求系统有足够版本的 GCC 来支持安装 C++11。 请注意 CentOS 以外的发行版不受官方支持。 但是,欢迎非 CentOS 平台的反馈和补丁!

-macOS 11.0 (Big Sur)、10.15 (Catalina)、10.14 (Mojave),带有 Apple-LLVM (Xcode) 11、12、64 位。

        Big Sur 支持是初步的,对 Apple M1 芯片的支持也是如此。

-Windows 10Visual Studio 2019,32/64 位。

        目前没有官方支持通过 Linux 的 Windows 子系统构建/使用 Geant4,但我们欢迎通过我们的 Discourse Forum 报告或反馈有关在此系统下使用 Geant4 的报告或反馈。

以下平台和编译器也经过测试但未得到官方支持:

-CentOS 7 Linux 与英特尔 C/C++ 编译器 >=19.X。 请注意,英特尔编译器必须设置为使用由 GNU GCC >= 4.9 提供的 C++ 头文件和标准库,以提供与 C++11 标准所需的兼容性。
-带有 LLVM/Clang 7、8 和 9 的 CentOS 7 Linux
-带有 GCC 8 和 10 的 CentOS 8 Linux
-Ubuntu Linux 18.04LTS 和 GCC 7(系统编译器)
-Ubuntu Linux 20.04LTS 和 GCC 9(系统编译器)

Geant4 可选组件的先决条件

Geant4 有几个可选组件,如果启用这些组件,需要在您的系统上预装更多软件。 下面列出了这些组件及其要求。

在 Linux 上,我们强烈建议您通过发行版的包管理系统安装这些,除非它们不满足列出的版本和(对于 C++ 包)标准要求。 您应该查阅发行版的文档,以获取有关提供所需软件库和头文件的软件包的信息。

在 macOS 和 Windows 上,我们强烈建议通过软件包供应商提供的二进制 dmg/exe 安装程序安装任何必需的软件包。 未测试通过 HomebrewMacPorts 在 macOS 上安装和使用软件包,但您可以使用通过这些系统安装的软件包构建 Geant4,但需要注意。

CLHEP、Expat 和 zlib 支持库

Geant4 使用工具包分发 CLHEPExpat zlib 源的最小版本,以帮助跨平台使用。

这些内部版本是默认构建和安装的(Linux 和 macOS 平台上的 Expat 除外),但如果需要,可以将 Geant4 配置为使用这些包的现有安装(有关详细信息,请参阅 Geant4 构建选项)。 如果使用现有安装,它们必须满足以下版本/标准要求:

-CLHEP:2.4.4.0 或更高版本,根据与 Geant4 相同的 C++ 标准编译(默认为 C++11)。
-Expat :2.0.1 或更高版本。
-zlib:1.2.3 或更高版本。

GDML XML 几何支持

要启用从 GDML XML 文件中读取/写入几何图形,必须安装Xerces-C++ headers and library >=3,并根据与 Geant4 相同的 C++ 标准(默认为 C++11)进行编译。 在 Unix 系统上,它还应该使用 netaccessor-curl 进行配置和构建,并且使用的 libcurl 应该支持 SSL,以便通过 https 访问模式文件。

用户界面和可视化驱动程序

除了下面列出的各个驱动程序包之外,我们强烈建议您在您的系统上安装显卡驱动程序(例如 NVIDIA)。

对于以下基于 X11 的驱动程序,Wayland 窗口管理器的用户将需要 XWayland。 我们的经验是,该解决方案确实与 Qt 协同工作。

-Qt5 用户界面和可视化(所有平台)
        –Qt5 头文件和库
        * 您需要亲自注册为开放软件开发者才能获得免费的个人版Qt。
        * 对于大多数平台,您可以获得二进制安装包。
        * 如果是单独安装 Qt5 模块,Geant4 需要的设置是 Qt5Core、Qt5Gui、Qt5Widgets Qt5OpenGL 和 Qt5PrintSupport。 使用可选的和实验性的 Qt3D驱动程序还需要 Qt5 5.15 和 Qt53DCore、Qt53DExtras 和 Qt53DRender 模块。
         * 如果需要编译,Qt5 最好使用与 Geant4 相同的 C++ 标准(默认为 C++11)编译,但这不是必需的,因为它的 ABI 在标准之间是二进制兼容的。

        – OpenGL MesaGL 头文件和库。

-X11 OpenGL 可视化(Linux 和 macOS)
        – X11 头文件和库(macOS 上的 XQuartz)。
        – OpenGL MesaGL 头文件和库。

-WIN32 OpenGL 可视化 (Windows)
        – OpenGLMesaGL 头文件和库。
        – Visual Studio 提供 OpenGL 的基本安装。

-X11 RayTracer 可视化(Linux 和 macOS)
        – X11 头文件和库(macOS 上的 XQuartz)。

-开放式 Inventor 可视化(所有平台)
        – Coin3D 库和头文件,版本 4.0.0 或更新版本,加上一个绑定:
        – SoXt 库和头文件,版本 1.4.0 或更新版本
        – SoQt 库和头文件,版本 1.6.0 或更新版本
        – SoWin 库和头文件,版本 1.4.0 或更新版本(SoWin 支持是临时的)
        – 另请参阅安装 Coin3D 和 SoXt/Qt 绑定

-Motif 用户界面和可视化(Linux 和 macOS)
        – Motif 主题标题和库。
        – X11 头文件和库(macOS 上的 XQuartz)。
        – OpenGL MesaGL 头文件和库。

分析功能和后端

Geant4 分析库提供了一个轻量级的接口,用于存储具有各种后端(例如纯文本、XML)的数量和绘图。 虽然后端和链接的选择是根据他们的应用程序的需要推迟给用户的,但在编译 Geant4 时,以下功能需要附加软件的存在:

-Freetype 字体渲染支持(Linux 和 macOS)
        – Freetype 标头和库。

Python 绑定

与 Geant4、Geant4Py 的 Python 绑定现在可以作为主要的 Geant4 构建的一部分构建,并且需要:

-Python 3.X 解释器、库和头文件
-Boost Python 1.69 库和头文件,根据所需的 Python 版本编译/链接。

高级/实验性功能

警告:这些功能仅适用于高级用户。 请注意,HDF5 的使用是实验性的。

-Geant4 实体的 VecGeom 替代品
        – VecGeom 头文件和库,版本 1.1.8 或更高版本,根据与 Geant4 相同的 C++ 标准编译
(默认为 C++11)

-针对 Geant4 内核和应用程序的 TiMemory 分析
        – TiMemory 头文件和库,根据与 Geant4 相同的 C++ 标准编译(默认为 C++11)

-Geant4 分析模块的 HDF5 持久性
        – HDF5 1.8 或更高版本的 C 头文件和库。
        – 如果 Geant4 是用多线程支持构建的,那么使用的 HDF5 安装必须已经编译启用线程安全。

建议用于 Geant4 应用程序的软件

Geant4 包括许多基于文件的跨平台可视化驱动程序,以及用于基本分析的轻量级 inexlib 库。 除了在 Geant4 系统/软件先决条件中列出的之外,Geant4 不需要任何额外的软件来构建和安装这些组件。

但是,您可能希望安装下面推荐的第三方软件,以便在运行您的 Geant4 应用程序时使用这些组件。 我们再次强调您不需要这些包来构建和安装 Geant4。 另请注意,Geant4 无法提供安装或使用这些软件包的支持。 此处的任何问题都应报告给软件包的开发人员。

-DAWN后记渲染器(用于与DAWN可视化驱动程序)。
-HepRApp浏览器(与HepRepFile可视化驱动一起使用)。
-WIRED4 JAS插件(与HepRepXML可视化驱动一起使用)。
-VRML浏览器(与VRML可视化驱动一起使用)。
-OpenScientist交互式分析环境。
-AIDA实现,如OpenScientist, JAS3rAIDA
-用于Geant4医疗模拟的gMocren体积可视化器。

有关 Geant4 可视化和分析组件的更多详细信息,您应该查阅应用程序开发人员的 Geant4 用户指南中的相关部分。

2.6.2从源代码构建和安装

在 Unix 平台上

将 Geant4 源包 geant4.10.07.tar.gz 解压到您选择的位置。 仅作为说明,本指南假设它已被解压到名为 /path/to 的目录中,因此 Geant4 源包位于子目录中

/path/to/geant4.10.07

我们将此目录称为源目录。 下一步是创建一个目录,在其中配置和运行构建并存储构建产品。 此目录不应与源目录相同或位于源目录内。 在本指南中,我们在源目录旁边创建此构建目录:

$ cd /path/to
$ mkdir geant4.10.07-build
$ ls
geant4.10.07 geant4.10.07-build

要配置构建,请切换到构建目录并运行 CMake:

$ cd /path/to/geant4.10.07-build
$ cmake -DCMAKE_INSTALL_PREFIX=/path/to/geant4.10.07-install /path/to/geant4.10.07

在这里,CMake 变量 CMAKE_INSTALL_PREFIX 用于设置安装目录,即安装 Geant4 库、头文件和支持文件的目录。 它必须作为绝对路径提供。 CMake 的第二个参数是源目录的路径。 在此示例中,我们使用了源目录的绝对路径,但您也可以使用从构建目录到源目录的相对路径。

可以将附加参数传递给 CMake 以激活 Geant4 的可选组件,例如可视化驱动程序,或调整构建和安装参数。 有关这些选项的详细信息,请参阅 Geant4 构建选项。 如果您运行 CMake 并在之后决定要激活其他选项,只需在构建目录中重新运行 CMake,将额外选项和构建目录路径传递给它。 例如,如上运行CMake后,您可能希望激活Geant4数据集的安装,因此您将运行(在构建目录中)

$ cd /path/to/geant4.10.07-build
$ cmake -DGEANT4_INSTALL_DATA=ON

在执行 CMake 命令时,它将运行以配置构建并生成 Unix Makefile 以执行实际构建。 CMake 能够为其他工具(例如 Eclipse 和 Xcode)生成构建脚本,但请注意,我们不支持用户使用这些工具安装 Geant4。 在 Linux 上,您将看到类似于以下内容的输出:

$ cmake -DCMAKE_INSTALL_PREFIX=/path/to/geant4.10.07-install /path/to/geant4.10.07
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/gcc-4.9
-- Check for working C compiler: /usr/bin/gcc-4.9 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/g++-4.9
-- Check for working CXX compiler: /usr/bin/g++-4.9 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found EXPAT: /usr/lib64/libexpat.so (found version "2.0.1")
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - done
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Pre-configuring dataset G4NDL (4.6)
-- Pre-configuring dataset G4EMLOW (7.13)
-- Pre-configuring dataset PhotonEvaporation (5.7)
-- Pre-configuring dataset RadioactiveDecay (5.6)
-- Pre-configuring dataset G4PARTICLEXS (3.1)
-- Pre-configuring dataset G4PII (1.3)
-- Pre-configuring dataset RealSurface (2.2)
-- Pre-configuring dataset G4SAIDDATA (2.0))
-- Pre-configuring dataset G4ABLA (3.1)
-- Pre-configuring dataset G4INCL (1.0)
-- Pre-configuring dataset G4ENSDFSTATE (2.3)
*WARNING*
Geant4 has been pre-configured to look for datasets
in the directory:
/path/to/geant4.10.07-install/share/Geant4-10.7.0/data
but the following datasets are NOT present on disk at
that location:
G4NDL (4.6)
G4EMLOW (7.13)
PhotonEvaporation (5.7)
RadioactiveDecay (5.6)
G4PARTICLEXS (3.1)
G4PII (1.3)
RealSurface (2.2)
G4SAIDDATA (2.0))
G4ABLA (3.1)
G4INCL (1.0)
G4ENSDFSTATE (2.3)
If you want to have these datasets installed automatically
simply re-run cmake and set the GEANT4_INSTALL_DATA
variable to ON. This will configure the build to download
and install these datasets for you. For example, on the
command line, do:
cmake -DGEANT4_INSTALL_DATA=ON <otherargs>
The variable can also be toggled in ccmake or cmake-gui.
If you're running on a Windows system, this is the best
solution as CMake will unpack the datasets for you
without any further software being required
Alternatively, you can install these datasets manually
now or after you have installed Geant4. To do this,
download the following files:
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4NDL.4.6.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4EMLOW.7.13.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4PhotonEvaporation.5.7.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4RadioactiveDecay.5.6.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4PARTICLEXS.3.1.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4PII.1.3.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4RealSurface.2.2.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4SAIDDATA.2.0.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4ABLA.3.1.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4ENSDFSTATE.2.3.tar.gz
and unpack them under the directory:
/path/to/geant4.10.07-install/share/Geant4-10.7.0/data
As we supply the datasets packed in gzipped tar files,
you will need the 'tar' utility to unpack them.
Nota bene: Missing datasets will not affect or break
compilation and installation of the Geant4
libraries.
-- The following Geant4 features are enabled:
GEANT4_USE_SYSTEM_EXPAT: Using system EXPAT library
-- Configuring done
-- Generating done
-- Build files have been written to: /path/to/geant4.10.07-build

 确切的输出将因所使用的平台/编译器而异,但最后三行应与路径差异相同。 这些表示配置成功。

关于数据集的警告消息只是一个建议。 由于数据集的大小,Geant4 将尝试重用它可以在数据安装前缀下找到的任何数据集,在我们的示例中 /path/to/geant4.10.07-install/share/Geant4-10.7.0/data。 如果此处未找到任何数据集,它将预先配置使用 Geant4 的安装脚本(在安装后安装中描述)以指向该位置并发出消息以建议您在方便的时候手动安装数据集所需的步骤。

构建 Geant4 不需要数据集,但可能需要数据集来运行您的应用程序,具体取决于您使用的物理模型。 如果您希望在构建 Geant4 时自动下载和安装数据集,只需将选项 -DGEANT4_INSTALL_DATA=ON 添加到传递给 CMake 的参数中即可。 请注意,这需要有效的网络连接,并且将下载大约 0.5GB 的数据。 如果您的系统上已经有数据集,您可以将 Geant4 指向它们的位置。 有关更多详细信息,请参阅标准选项中描述的 GEANT4_INSTALL_DATADIR 选项。

如果此时您看到任何错误,请仔细检查 CMake 输出的错误消息,并首先检查您的 CMake 和 C++ 编译器的安装。 Geant4 的默认配置非常简单,只要 CMake 和编译器安装正确,就不会出现错误。

配置运行后,CMake 将生成用于构建 Geant4 的 Unix Makefile。 要运行构建,只需在构建目录中执行 make :

$ make -jN

其中 N 是您需要的并行作业数量(例如,如果您的机器有双核处理器,您可以将 N 设置为 2)。

构建现在将运行,并将输出有关构建进度和当前操作的信息。 如果您需要更多输出来帮助解决问题或只是为了获取信息,请按以下方式运行 make:

$ make -jN VERBOSE=1

 构建完成后,您可以通过运行以下命令将 Geant4 安装到您之前在 CMAKE_INSTALL_PREFIX 中指定的目录中:

$ make install

 在构建目录中。 库、头文件和资源文件安装在标准 Unix 样式目录层次结构中您选择的安装前缀下,如下面的安装后安装所述。 如果您为打包或部署执行分阶段安装,CMake 生成的 Makefile 支持将 DESTDIR 变量复制到临时位置。 要卸载 Geant4,您可以运行:

$ make uninstall

 这将删除所有已安装的文件,但不会删除任何已安装的目录。

在 Windows 平台上

在 Windows 平台上从源代码构建和安装 Geant4 的最简单方法是使用 Windows 命令行程序 cmd 加上 CMake 的命令行界面到 Visual Studio 提供的 MSBuild 工具。 虽然可以使用完整的 Visual Studio GUI,但 cmd 和 CMake/MSBuild 提供了一个更简单的界面,并且命令可以在脚本中使用。 如果您愿意,也可以使用 PowerShell 而不是 cmd,下面的说明应该会转移,除非有细微的语法差异。 使用 Cygwin 或 MinGW 及其自己的编译器或 Microsoft C++ 编译器的 Geant4 构建既不受支持,也不受测试,尽管 CMake 系统有望在这些工具链下工作。 如果您通过它们的原生 shell 和它们自己的 CMake 版本使用这些工具,则可以使用在 Unix 平台上构建和安装的说明。

要确保为构建设置了适当的 Visual Studio 路径和设置,请从 Start → Visual Studio 201X → Visual Studio Tools → Developer Command Prompt for VS201X 。运行此命令后,通过运行 cl 命令确认您有可用的 MSVC 编译器,您应该会看到(注意,在下面,为了清楚起见,cmd 提示符显示为 >):

> cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.11.25547 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
usage: cl [ option... ] filename... [ /link linkoption... ]

 cl 的确切版本号可能略有不同,但对于 Visual Studio 2019,编译器版本的第一个元素应至少为 19。

要开始构建 Geant4,请将源包 geant4_10_07.zip 解压到您选择的位置。 仅作为说明,本指南假设它已解压到名为 C:\Users\YourUsername\Geant4 的目录中,因此 Geant4 源包位于子目录 C:\Users\YourUsername\Geant4\geant4_10_07

我们将此目录称为源目录。 下一步是创建一个目录,在其中配置和运行构建并存储构建产品。 此目录不应与源目录相同或位于源目录内。 在本指南中,我们在源目录旁边创建此构建目录:

> cd %HOMEPATH%\Geant4
> dir /B
geant4_10_07
> mkdir geant4_10_07-build
> dir /B
geant4_10_07
geant4_10_07-build
To configure the build, change into the build directory and run CMake:
> cd %HOMEPATH%\Geant4\geant4_10_07-build
> cmake -DCMAKE_INSTALL_PREFIX="%HOMEPATH%\Geant4\geant4_10_07-install" "%HOMEPATH%\Geant4\geant4_10_07"

 在这里,CMake 变量 CMAKE_INSTALL_PREFIX 用于设置安装目录,即安装 Geant4 库、头文件和支持文件的目录。 它必须作为绝对路径提供。 CMake 的第二个参数是源目录的路径。 在此示例中,我们使用了源目录的绝对路径,但您也可以使用从构建目录到源目录的相对路径。 如果路径包含空格,则应引用它们。

可以将附加参数传递给 CMake 以激活 Geant4 的可选组件,例如可视化驱动程序,或调整构建和安装参数。 有关这些选项的详细信息,请参阅 Geant4 构建选项。 如果您运行 CMake 并在之后决定要激活其他选项,只需在构建目录中重新运行 CMake,将额外选项和构建目录传递给它。 例如,在如上运行 CMake 后,您可能希望激活 Geant4 数据集的安装,因此您将运行

> cd %HOMEPATH%\Geant4\geant4_10_07-build
> cmake -DGEANT4_INSTALL_DATA=ON .

在执行 CMake 命令时,它将运行以配置构建并生成 Visual Studio 项目文件以执行实际构建。CMake 能够为其他工具生成构建脚本,例如 NMake 和 Ninja,但请注意,Windows 上的 Geant4 构建尚不支持这些。 使用 Visual Studio,您应该会看到类似于

> cmake -DCMAKE_INSTALL_PREFIX="%HOMEPATH%\Geant4\geant4_10_07-install" "%HOMEPATH%\Geant4\geant4_10_07"
-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.11.25547.0
-- The CXX compiler identification is MSVC 19.11.25547.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft VisualStudio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft VisualStudio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x86/cl.exe --works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft VisualStudio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft VisualStudio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x86/cl.exe --works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for dlfcn.h
-- Looking for dlfcn.h - not found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for strings.h
-- Looking for strings.h - not found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Looking for getpagesize
-- Looking for getpagesize - not found
-- Looking for bcopy
-- Looking for bcopy - not found
-- Looking for memmove
-- Looking for memmove - found
-- Looking for mmap
-- Looking for mmap - not found
-- Looking for 4 include files stdlib.h, ..., float.h
-- Looking for 4 include files stdlib.h, ..., float.h - found
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for off_t
-- Looking for off_t - not found
-- Looking for size_t
-- Looking for size_t - not found
-- Check size of off64_t
-- Check size of off64_t - failed
-- Looking for fseeko
-- Looking for fseeko - not found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Pre-configuring dataset G4NDL (4.6)
-- Pre-configuring dataset G4EMLOW (7.13)
-- Pre-configuring dataset PhotonEvaporation (5.7)
-- Pre-configuring dataset RadioactiveDecay (5.6)
-- Pre-configuring dataset G4PARTICLEXS (3.1)
-- Pre-configuring dataset G4PII (1.3)
-- Pre-configuring dataset RealSurface (2.2)
-- Pre-configuring dataset G4SAIDDATA (2.0))
-- Pre-configuring dataset G4ABLA (3.1)
-- Pre-configuring dataset G4INCL (1.0)
-- Pre-configuring dataset G4ENSDFSTATE (2.3)
*WARNING*
Geant4 has been pre-configured to look for datasets
in the directory:
/Users/YourUsername/Geant4/geant4_10_07-install/share/Geant4-10.7.0/data
but the following datasets are NOT present on disk at
that location:
G4NDL (4.6)
G4EMLOW (7.13)
PhotonEvaporation (5.7)
RadioactiveDecay (5.6)
G4PARTICLEXS (3.1)
G4PII (1.3)
RealSurface (2.2)
G4SAIDDATA (2.0))
G4ABLA (3.1)
G4INCL (1.0)
G4ENSDFSTATE (2.3)
If you want to have these datasets installed automatically
simply re-run cmake and set the GEANT4_INSTALL_DATA
variable to ON. This will configure the build to download
and install these datasets for you. For example, on the
command line, do:
cmake -DGEANT4_INSTALL_DATA=ON <otherargs>
The variable can also be toggled in ccmake or cmake-gui.
If you're running on a Windows system, this is the best
solution as CMake will unpack the datasets for you
without any further software being required
Alternatively, you can install these datasets manually
now or after you have installed Geant4. To do this,
download the following files:
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4NDL.4.6.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4EMLOW.7.13.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4PhotonEvaporation.5.7.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4RadioactiveDecay.5.6.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4PARTICLEXS.3.1.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4PII.1.3.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4RealSurface.2.2.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4SAIDDATA.2.0.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4ABLA.3.1.tar.gz
https://cern.ch/geant4\unhbox\voidb@x\kern\z@\char‘\protect\
discretionary{\char\defaulthyphenchar}{}{}data/datasets/G4ENSDFSTATE.2.3.tar.gz
and unpack them under the directory:
/Users/YourUsername/Geant4/geant4_10_07-install/share/Geant4-10.7.0/data
As we supply the datasets packed in gzipped tar files,
you will need the 'tar' utility to unpack them.
Nota bene: Missing datasets will not affect or break
compilation and installation of the Geant4
libraries.
-- The following Geant4 features are enabled:
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/YourUsername/Geant4/geant4_10_04-build

 Visual Studio 2019 的输出将略有不同,并且由于源/构建路径仅用于说明,但最后三行至少应该在路径差异内相同。 这些表示配置成功。

关于数据集的警告消息只是一个建议。 由于数据集的大小,Geant4 将尝试重用它可以在数据安装前缀下找到的任何数据集,在我们的示例中为 C:\Users\YourUsername\Geant4\geant4_10_07-install\share\Geant4-10.7.0\data 。如果此处未找到任何数据集,则会发出消息以告知您在方便时手动安装数据集所需采取的步骤。

构建 Geant4 不需要数据集,但可能需要数据集来运行您的应用程序,具体取决于您使用的物理模型。 如果您希望在构建 Geant4 时自动下载和安装数据集,只需将选项 -DGEANT4_INSTALL_DATA=ON 添加到传递给 CMake 的参数中即可。 请注意,这需要有效的网络连接,并且将下载大约 0.5GB 的数据。 如果您的系统上已经有数据集,您可以将 Geant4 指向它们的位置。 有关更多详细信息,请参阅标准选项中描述的 GEANT4_INSTALL_DATADIR 选项。

如果此时您看到任何错误,请仔细检查 CMake 输出的错误消息,并首先检查 CMake 和 Visual Studio 的安装。 Geant4 的默认配置非常简单,只要正确安装了 CMake 和 Visual Studio,您应该不会看到错误。

配置运行后,CMake 将生成用于构建 Geant4 的 Visual Studio 解决方案文件。 CMake 本身可用于通过执行以下命令来运行构建:

> cmake --build . --config Release

在这里, --build 参数采用构建目录的路径,在这种情况下,我们从构建目录运行,因此它只是当前工作目录。 --config 参数采用我们想要构建的配置(与 Make 不同,Visual Studio 可以支持同一项目中的多个配置)并选择 Release 以提供完全优化的库以获得最佳性能。 如果您正在开发应用程序并需要调试信息,那么您应该将此参数更改为 RelWithDebInfo。

构建现在将运行,并将输出有关构建进度和当前操作的信息。 默认情况下,Visual Studio 解决方案不启用文件的并行编译以加快构建速度。 Geant4 的 CMake 系统提供了一个选项来启用它,因此如果您有一个多核系统,您可以将选项 -DGEANT4_BUILD_MSVC_MP=ON 添加到传递给 CMake 的参数中。 构建完成后,可以通过运行以下命令来安装头文件、库和支持文件:

> cmake --build . --config Release --target install

也可以在配置后立即调用该命令,一步构建和安装 Geant4。 安装的文件和目录结构遵循 Unix 构建的文件和目录结构,并在安装后安装程序中进行了描述。

Geant4 构建选项

在 Unix 平台和 Windows 平台上都提供了在这些平台上构建和安装 Geant4 的最小程序。 许多附加选项可以传递给 CMake,以调整 Geant4 的构建和安装方式,并启用可选组件。

选项分为标准选项,任何用户或开发人员都可以直接设置,高级选项,一般只有高级用户,开发人员需要,或者对构建和安装进行非常精细的控制。一些选项启用了 Geant4 的组件 需要外部软件(如 Geant4 系统/软件先决条件中所列)。 如果启用这些选项,将搜索所需的软件,因此还有一些选项可以控制 CMake 应该在哪里查找这些包。 如果未找到所需的软件包,则 CMake 将退出并显示错误消息,详细说明未找到的内容。

这些选项可以通过 -D 标志将它们的名称和值传递给 cmake 命令来设置。 例如:

$ cmake -DCMAKE_INSTALL_PREFIX=/opt/geant4 -DGEANT4_USE_GDML=ON /path/to/geant4-source

将配置 Geant4 的构建以在 /opt/geant4 下安装并编译对 GDML 的支持。

如果您已经创建了一个构建目录并使用 CMake 来配置构建,您始终可以在该目录中使用新选项重新运行 CMake 以重新生成构建脚本(Makefiles 或 IDE 解决方案)。 您还可以停用先前选择的选项以从构建中删除组件。 例如,如果我们配置了一个构建来启用 GDML 支持并想删除它,我们可以运行:

$ cmake -DGEANT4_USE_GDML=OFF .

请注意,这假设我们在先前配置的构建目录中运行 cmake,因此我们只需要传递当前工作目录而不是完整的源目录路径。

如果您重新配置以取消设置选项并重建并重新安装,则您的安装可能包含由先前设置的选项安装的文件(例如标题)。 在这种情况下,您应该在重新配置之前构建卸载目标以保证删除这些文件。

CMake 还提供基于 Curses(仅限 UNIX)和 Qt(UNIX 和 Windows)的终端/GUI 界面,可用于浏览和设置选项。 有关这些接口的更多信息,请参阅 CMake 文档。

标准选项

 

2.6.3 后安装设置

2.6.4如何使用Geant4 Toolkit库

2.6.5附录

上一篇:从git上克隆项目时报错remote: The project you were looking for could not be found


下一篇:Groundhog Looking Dowdy