记录自己安装Geant4的各种碰壁方式(未解决)

0201

尝试在本机安装Geant4的四种碰壁方式:

1)wsl1 ubuntu20.04安装(Geant4-v11.1.2和v10.7.3)报错(https://geant4-forum.web.cern.ch/t/error-running-example-b1-qt-qpa-xcb-could-not-connect-to-display/11113/17),尝试升级到ubuntu22.04,在重启系统时报错System has not been booted with systemd as init system (PID 1). Can't operate.

2)Win10+Geant4-v11.2.0+Cmake3.27.9+Qt6.6.1

参照(https://zhuanlan.zhihu.com/p/181715788),使用Cmake能顺利 Generate,但执行cmake --build . --config Release --target install后报错(全部输出error.txt),同时install文件夹内为空。

考虑可能是C++标准的默认设置需要更改,参考(https://blog.csdn.net/qq_30795779/article/details/121207472)修改后无效果。

参考(如何修改VS2017、VS2019、VS2022中C++默认版本_vs2017的c++版本-CSDN博客)(VS2019或VS2017没有Microsoft.Cpp.x64.user/找不到Debug|Win32等_vs中debugx64属性下无.user-CSDN博客)添加MSBuild并修改后,在VS中新打开的项目默认c++标准已经变为cpp17,但是重新编译和安装Geant4仍然报之前一样的错误。

发现原来犯了一个很低级的错误,安装Qt时应该选择msvc2019,而我一开始选了mingw。更改Qt组件之后重新编译和安装,这回报错少了两种,如图,但install文件夹还是空的。

3)其他不变,下载了Qt5.15.12的源码zip(没有.exe安装程序),解压之后找不到Cmake需要的lib

4)其他不变,下载了Qt5.12.12的.exe程序,但是其只支持VS2015和2017,本机安装的是VS2019

只安装了MSVC 2017 64-bit,编译和安装中途报同样的错(未中断):

D:\geant4\geant4-v11.2.0\source\global\management\src\G4PhysicsModelCatalog.cc(684,112): error C2445: 条件表达式的 result 类型有
歧义: 类型“_Ty”和“const char [10]”可转换为多个常见类型 [D:\geant4\geant4-v11.2.0_build\source\G4global.vcxproj]
          with
          [
              _Ty=G4String
          ]
D:\geant4\geant4-v11.2.0\source\global\management\src\G4PhysicsModelCatalog.cc(684,112): message : 可能是“_Ty” [D:\geant4\
geant4-v11.2.0_build\source\G4global.vcxproj]
          with
          [
              _Ty=G4String
          ]
D:\geant4\geant4-v11.2.0\source\global\management\src\G4PhysicsModelCatalog.cc(684,112): message : 或    “const char * ”
[D:\geant4\geant4-v11.2.0_build\source\G4global.vcxproj]

同时install文件夹仍然为空,无法按照官网(Postinstall Setup — Geant4 Installation Guide 11.2 documentation)提示设置环境变量。 

尝试安装Geant4-10.6.3 ,编译安装时出现类似报错,同时install文件夹仍为空。

D:\geant4\geant4-v10.6.3\source\geometry\navigation\src\G4Navigator.cc(1053,72): error C2445: 条件表达式的 result 类型有歧义: 类型“c
onst G4String”和“const char [1]”可转换为多个常见类型 [D:\geant4\geant4-build\source\geometry\G4geometry.vcxproj]
D:\geant4\geant4-v10.6.3\source\geometry\navigation\src\G4Navigator.cc(1053,72): message : 可能是“const G4String” [D:\gean
t4\geant4-build\source\geometry\G4geometry.vcxproj]
D:\geant4\geant4-v10.6.3\source\geometry\navigation\src\G4Navigator.cc(1053,72): message : 或    “const char *” [D:\gean
t4\geant4-build\source\geometry\G4geometry.vcxproj]

按照大佬抛给我的解决方案能够修复单个文件的歧义问题,但是在编译和安装过程中同类型报错不可胜数,逐个修改不现实。 

手动修改了好几个文件之后,又出现了新的报错,看到报错之后就Ctrl+C中止了。 

d:\geant4\geant4-v11.2.0-build>cmake --build . --config Release
Microsoft (R) Build Engine version 16.11.0+0538acc04 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

  Auto build dll exports
  G4clhep.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\bin
  \G4clhep.dll
  Auto build dll exports
  ptl-shared.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\
  bin\G4ptl.dll
  Auto build dll exports
  G4global.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\bi
  n\G4global.dll
  Auto build dll exports
  G4intercoms.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release
  \bin\G4intercoms.dll
  Auto build dll exports
  G4graphics_reps.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Rel
  ease\bin\G4graphics_reps.dll
  Auto build dll exports
  G4zlib.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\bin\
  G4zlib.dll
  Auto build dll exports
  G4materials.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release
  \bin\G4materials.dll
  Auto build dll exports
  G4geometry.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\
  bin\G4geometry.dll
  Auto build dll exports
  G4particles.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release
  \bin\G4particles.dll
  Auto build dll exports
  G4track.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\bin
  \G4track.dll
  Auto build dll exports
  G4digits_hits.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Relea
  se\bin\G4digits_hits.dll
  Auto build dll exports
  G4expat.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\bin
  \G4expat.dll
  Auto build dll exports
  G4analysis.vcxproj -> D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\
  bin\G4analysis.dll
  G4LatticeManager.cc
  G4LatticeReader.cc
  G4PhononDownconversion.cc
  G4PhononPolarization.cc
  G4PhononReflection.cc
  G4PhononScattering.cc
  G4PhononTrackMap.cc
  G4VPhononProcess.cc
  ??????...
  G4ChannelingTrackData.cc
  G4ChannelingOptrMultiParticleChangeCrossSection.cc
  G4ChannelingOptrChangeCrossSection.cc
  G4ChannelingMaterialData.cc
  G4Channeling.cc
  G4ChannelingECHARM.cc
  ??????...
  G4FastSimHitMaker.cc
  G4FastSimulationHelper.cc
  G4FastSimulationManager.cc
  G4FastSimulationManagerProcess.cc
  G4FastSimulationMessenger.cc
  G4FastStep.cc
  G4FastTrack.cc
  G4GlobalFastSimulationManager.cc
  G4VFastSimulationModel.cc
  ??????...
  G4EnergySplitter.cc
  G4ParallelWorldProcess.cc
  G4ParallelWorldProcessStore.cc
  G4ParallelWorldScoringProcess.cc
  G4ScoreSplittingProcess.cc
  ??????...
  G4CoupledTransportation.cc
  G4NeutronKiller.cc
  G4NeutronKillerMessenger.cc
  G4StepLimiter.cc
  G4Transportation.cc
  G4TransportationParameters.cc
  G4TransportationLogger.cc
  G4VTrackTerminator.cc
  ??????...
  Auto build dll exports
G4MoleculeGunMessenger.obj : error LNK2005: "public: virtual void __cdecl TG4
MoleculeShoot<class G4Track>::Shoot(class G4MoleculeGun *)" (?Shoot@?$TG4Mole
culeShoot@VG4Track@@@@UEAAXPEAVG4MoleculeGun@@@Z) ??? G4MoleculeGun.obj ??? [
D:\geant4\geant4-v11.2.0-build\source\G4processes.vcxproj]
    ????? D:/geant4/geant4-v11.2.0-build/BuildProducts/Release/lib/G4processe
  s.lib ??? D:/geant4/geant4-v11.2.0-build/BuildProducts/Release/lib/G4proces
  ses.exp
D:\geant4\geant4-v11.2.0-build\BuildProducts\Release\bin\G4processes.dll : fa
tal error LNK1169: ?????????????? [D:\geant4\geant4-v11.2.0-build\source\G4pr
ocesses.vcxproj]
  Building Custom Rule D:/geant4/geant4-v11.2.0/source/CMakeLists.txt
  G4InteractorMessenger.cc
  G4UIArrayString.cc
  G4UIcsh.cc
????????...
^C
d:\geant4\geant4-v11.2.0-build>

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 安装Geant4在Ubuntu20.04上的步骤如下: 1. 在终端中运行sudo apt-get update更新软件库 2. 运行sudo apt-get install build-essential cmake libxerces-c-dev libexpat1-dev zlib1g-dev来安装所需的软件包和库 3. 从官方网站下载最新的Geant4安装包 4. 解压下载的tar.gz文件 5. 在终端中运行 mkdir Geant4-build,然后 cd Geant4-build 6. 运行 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/Geant4 -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_INSTALL_DATA=ON ../Geant4解压后的目录 7. 运行 make -jN(N为您的CPU数量+1),编译并安装Geant4 8. 在终端中运行 source /usr/local/Geant4/bin/geant4.sh,设置环境变量 9. 您现在可以测试您的Geant4安装,可以使用以下命令来运行一个例子,例如:/usr/local/Geant4/examples/basic/B1/bin/Linux-g++/exampleB1。 ### 回答2: Geant4是一款高度数据驱动,模块化的软件工具箱,可用于模拟粒子与物质相互作用的过程。在科学研究领域中,它被广泛应用于物理、化学、射线治疗、核医学和天体物理学等领域。在本文中,我们将讨论如何在Ubuntu 20.04系统中安装Geant4。 第一步:安装系统依赖 在安装Geant4之前,确保您的系统已安装以下必备依赖包: $sudo apt-get install build-essential cmake libxerces-c-dev libexpat-dev 第二步:下载Geant4 从Geant4官方网站(http://geant4.cern.ch/support/download)下载最新版的Geant4源代码压缩包。使用以下命令下载: $wget http://geant4.cern.ch/support/source/geant4.10.07.p02.tar.gz 对于其他版本,可以在网站上进行下载。 第三步:解压缩Geant4 使用以下命令解压缩下载的Geant4源代码: $tar -zxvf geant4.10.07.p02.tar.gz 第四步:创建一个构建目录 在解压缩源代码后,创建一个构建目录并转到该目录: $mkdir geant4-build $cd geant4-build 第五步:配置Geant4 使用CMake配置Geant4。在终端中输入以下命令: $cmake -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_QT=ON ../geant4.10.07.p02 该命令将配置Geant4以安装数据,使用OpenGl X11和Qt可视化工具包。 第六步:安装Geant4 使用以下命令来安装Geant4: $sudo make -j4 $sudo make install 其中-j4将使用4个处理器内核加速编译过程。 第七步:设置环境变量 为了正确运行Geant4,需要将环境变量设置为Geant4的安装路径。在终端中输入以下命令: $export LD_LIBRARY_PATH=/usr/local/geant4/lib64:$LD_LIBRARY_PATH $export G4ROOT=/usr/local/geant4/ $export PATH=$G4ROOT/bin:$PATH 把上面的路径改为自己的路径。 第八步:测试Geant4 完成上述步骤后,可以测试Geant4是否成功安装。打开终端并输入: $geant4-config --version 应返回已安装Geant4版本。现在您可以运行任何Geant4的示例程序来测试它。使用以下命令启动一个示例程序: $cd /usr/local/geant4/examples/basic/B1 $./exampleB1 如果一切工作正常,应该能够启动示例程序。 到此,我们就完成了在Ubuntu 20.04上安装Geant4的步骤。Geant4可以让我们了解粒子与物质之间的相互作用,从而加深我们对物理学和其他领域的科学知识的理解。我们希望这篇文章能对您有所帮助。 ### 回答3: Geant4是一个开源的高性能物理模拟程序包,可以模拟各种粒子在物质中的相互作用过程。Ubuntu 20.04安装Geant4需要以下步骤: 1.确保系统已经安装了必要的依赖,包括cmake、gcc、g++等。 sudo apt-get install cmake gcc g++ 2.从官网下载Geant4程序包。 https://geant4.web.cern.ch/support/download 3.将下载的文件解压到本地目录下,然后进入解压后的文件夹。 tar -zxvf geant4.10.07.p02.tar.gz cd geant4.10.07.p02 4.创建一个新的build目录,并进入该目录。 mkdir build cd build 5.在build目录下通过cmake进行配置。 cmake ../ 6.运行make命令并添加-j选项以加快编译速度。 make -j4 7.安装Geant4程序包。 sudo make install 8.设置环境变量,将Geant4库目录添加到系统库中。 vim ~/.bashrc export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/geant4/lib64 source ~/.bashrc 9.验证Geant4是否成功安装。在终端输入命令: geant4-config --version 若显示如下信息,则说明安装成功: Geant4 version Name: geant4-10-7-patch-02 可以根据需要自行选择Geant4程序包的版本,其中名称中的“10.07”代表版本号,可以替换为自己需要安装的版本号。通过以上步骤,Ubuntu 20.04上安装Geant4的过程就完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值