在Win7环境下搭建Geant4工作平台
本物理专业小硕,现在材料实验室工作,研究方向大概是核屏蔽材料的软件模拟吧。其实实验室里大多数师兄弟都是搞焊接的,平时能接触到这类直接给源码自己编译的软件的机会基本为零,所以一切都靠自己探索,成功搭建了Geant4平台在Win7环境下之后,把安装经历分享出来,供大家参考。另:本文特别感谢新浪“走走看看”大佬的博文@http://blog.sina.com.cn/morpheusndpat。接下来就是具体了:
之前在Ubuntu的平台下搭建过Geant4,但因为当时刚刚接触,所以大多都还是一知半解,这次不小心丢了虚拟机,着忙间赶任务,反而学会了不少。首先,相比大多数童鞋用Geant4都会用到可视化和数据分析功能,就像主机需要显示器跟键盘搭配一样。因此,本文选择CERN ROOT和Qt分别作为数据分析和可视化部件。第一步,当然还是根据自己的OS选择相应的工作软件了。本文用到的OS是Win7 64位操作系统,别小看这64位,好多软件版本是没有windows 64位滴,同样用64位系统的童鞋可以根据本文的推荐选择软件版本。
第一:Geant4的版本选择了写作时最新的geant4_10_05_p01,下载地址po在这里http://geant4.web.cern.ch/support/download,同时,童鞋们也要把下载列表下面所列的Data files悉数下载下来,先保存在另外的地方。不过为了保证安装平台的系统性,建议新建文件夹“Geant4”,在文件夹下再用两个文件夹一个放源文件,一个放库文件。
第二:整个平台需要一款编译器,因此,推荐微软的宇宙第一IDE visual studio,UP这里选择的版本是VS2019,这软件对于开源开发者来说完全免费,请放心食用。https://visualstudio.microsoft.com/zh-hans/vs/安装过程友好,只需下一步即可完成。之后所用到的ROOT和Qt均与这IDE相关。
第三:选择CERN ROOT下载版本,这东西是最好安装的,只需要把地址放在这里就好https://root.cern.ch/downloading-root,这里选择的版本建议越新越好,本文所用的版本是root_v6.18.02.win32.vc16.exe,正如童鞋们看到,上面标注win32,但经测试,64位OS可用,这也是这玩意儿之所以好安装的原因之一。安装过程也极为方便,下一步大法。
第四:Qt的安装费了UP好多功夫,这里需要特别标出,因为好多Qt版本不是与VS2019不相关,就是32位版本,无法编译,因此,UP几经尝试在几乎都要放弃的时候找到了这个版本——qt-opensource-windows-x86-msvc2015_64-5.7.1.exe看清楚,MSVC指的是与VS版本的关联,VS向下兼容,用2019倒也无妨,主要是之后的64很重要!!如果没有这个字样,之后的编译就无法通过!这里不推荐用官网下载,这个网站会省去好多注册付费的麻烦http://download.qt.io/archive/qt/5.7/5.7.1/。下载安装后,更重要的是,这里需要添加一下系统变量(如果有连这个都不太懂的萌新小可爱就请手动百度吧^_^)
变量名:QMAKESPEC 变量值:.\Qt\Qt5.7.1\5.7\msvc2015_64\mkspecs\winrt-x64-msvc2015
变量名:QTDIR 变量值:.\Qt\Qt5.7.1
注:这里的.\是相对文件路径,请各位童鞋按照自己安装时候的路径自行更改。
第五:经历过上面最累的一部分,我们几乎就把所有的部分都下载完成了(怎么会捏?),需要用什么来把它们联系起来呢?这就是在Linux系统上经常用到的Cmake指令,在这里,我们的windows系统无法像Linux大法一样一行命令安装,因此,我们需要手动下载安装cmake GUI(当然,有兴趣的童鞋也可试试Windows上的Linux仿真器cygwin,之前好多大佬也这么用)。这里,我只po出cmake Windows版本的下载版本cmake-3.15.2-win64-x64.msi和地址https://cmake.org/download/。尽量使用最近版本,因为以前版本是不能与VS2019兼容的!!安装很简单,这里不赘述了。
第六:那么,所有的所有都安装好了(这次是真的!)要动手开始编译了!!!这里我们双击点开Cmake GUI桌面图标,在第一行的“where is the source code:”框里找到我们Geant4源码所在的位置(就是之前下载过的Geant4文件夹下geant4_10_05_p01什么的),在下一行“where to build the binaries:”框里再在Geant4文件夹下与上文件夹并行的地方新建一文件夹,命名为“build”(这是习惯啦,当然,你愿意,阿猫阿狗也行)。填好后大概就是这个样子滴:
不太一样?没有关系,这是UP本人已经编译过后的情况 ,只要童鞋们安装上述去填写就好。之后,我们点击左下角的Configure按钮,开始预编译,这里,我们需要选择IDE版本,记得选择VS2019哦,相信版本正确的话应该能找得到。在这之后,画面跟上述情况就很像了,现在的问题就是我们需要勾选哪些内容——Qt以及其中所必须的插件OpenGL,其实我感觉安装Qt完全就是为了使用这款插件。。。如果画面并未跳出Qt相关路径请检查Qt安装及环境变量设置是否正确。全部正确后,CMAKE_CONFIGURATION_TYPES就留下Release一项就好,之后再选择INSTALL的安装地址CMAKE_INSTALL_PREFIX,可以照着图上填写,再次Configure。
第七:恭喜你基本完成了90%的任务走到这里,下面的事情很简单,点击Generate生成c++工作项目吧!
第八:Cmake的使命结束了,关闭它,或者直接点击第三个按钮:Open Project,界面会自动转到高大上的宇宙第一IDE——VS9012(误)上,我们打开了刚刚亲手生成的geant4项目。别着急,我们还要再做一点小事:第一步下载好的Geant4库文件还记得吗?现在要按照下面的样子用环境变量来配置它们了!
变量名:PATH 变量值:添加两个.\Qt\Qt5.7.1\5.7\msvc2015_64\bin;.\root_v6.18.00\bin(这行似乎是前面忘掉的工作。。。)
变量名:G4ENSDFSTATEDATA 变量值:.\Geant4\DATA\G4ENSDFSTATE2.2
变量名:G4LEDATA 变量值:.\Geant4\DATA\G4EMLOW7.7
变量名:G4LEVELGAMMADATA 变量值:.\Geant4\DATA\PhotonEvaporation5.3
变量名:G4NDLDATA 变量值:.\Geant4\DATA\G4NDL4.5
变量名:G4PARTICLEXSDATA 变量值:.\Geant4\DATA\G4PARTICLEXS1.1
变量名:G4PIIDATA 变量值:.\Geant4\DATA\G4PII1.3
变量名:G4SAIDXSDATA 变量值:.\Geant4\DATA\G4SAIDDATA2.0
目前好像这几个库就够用了吧?不够用的还可以去geant4官网上查询相应的变量名进行添加~
第九:呼~终于完成了!现在,在VS2019的解决方案列表里找到INSTALL这个项目,这里就是你之前在CMake中选择的INSTALL系统安装地址中安装的项目。右键->生成,在这之后,会生成好久好久,但当这一切都完成的时候(没有报错),恭喜你,Geant4平台已经在你电脑里了!
下面,作为测试教学,我们简单实用example里的B4C来做测试(不要问我为什么),我们再次打开CMake GUI,在源代码行找到这个例子的源码,并在你想要生成编译文件的地方建立build文件夹,之后的操作就很简单了,什么都不用选,之间configure,过后再generate,再Open project。打开VS2019之后,再找到INSALL项目,右键生成,等待过后,你的例子也已经上桌了(误~)在这里,需要强调,我们两次生成INSTALL时应该检查一下最上方的编译方式是否为“Release”之前在CMake设置过应该没错,如果不对,请改正为Release。
所有的所有均已完成,当你再次打开你的例子文件夹的时候,你会发现里面多了一个build文件夹,打开它,一堆项目文件里,有一个Release文件夹,打开它,最终,你看到了你的项目可执行文件——exampleB4c.exe。是不是很激动?别急,把它拖动到上一层目录,也就是build目录之后,再双击打开,你就会看到这样的效果:
是不是忘掉了什么?这个例子附带了ROOT程序,因此使用了它,最后的番外任务——用ROOT打开.root数据分析表:
双击ROOTlogo(什么?没有logo?那就自己配一个好看的好了!)再在其中输入命令:TBrowser b,之后在弹出的列表中找到B4C例子build文件夹中生成的.root文件,打开它们,你就会发现,大功告成!!
好啦,就送各位童鞋到这里,也把这篇笔记作为我头一次在博客园的博文,欢迎大家留言斧正!
在Win7环境下搭建Geant4工作平台的更多相关文章
- WIN7 环境下搭建 PHP7(64 位)操作步骤
WIN7 环境下搭建 PHP7(64 位)操作步骤 一.安装与配置 Apache 1.下载 Apache下载地址:https://www.apachelounge.com/download/ 2.安装 ...
- Win7环境下搭建Go开发环境,基于VSCode编辑器
一.在搭建的时候参考以下文章 http://www.cnblogs.com/zsy/archive/2016/02/28/5223957.html http://blog.csdn.net/hil20 ...
- [原创]win7环境下搭建eclipse+python+django开发环境
一)工具下载 a)eclipse(最新版4.3.1)官网下载地址 http://www.eclipse.org/downloads/ b)python (2.X版本)官网下载地址 http://pyt ...
- Appium 在Win7环境下搭建
(一) Java环境准备 安装java sdk 环境变量配置:JAVA_HOME=D:\Program Files\Java\jdk1.8.0_92 PATH设置:%JAVA_HOME%\bin 验证 ...
- 在Win7虚拟机下搭建Hadoop2.6.0+Spark1.4.0单机环境
Hadoop的安装和配置可以参考我之前的文章:在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境. 本篇介绍如何在Hadoop2.6.0基础上搭建spark1.4.0单机环境. 1. 软件准备 ...
- 在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境
近几年大数据越来越火热.由于工作需要以及个人兴趣,最近开始学习大数据相关技术.学习过程中的一些经验教训希望能通过博文沉淀下来,与网友分享讨论,作为个人备忘. 第一篇,在win7虚拟机下搭建hadoop ...
- WIN7环境下CUDA7.5的安装、配置和测试(Visual Studio 2010)
以下基于"WIN7(64位)+Visual Studio 2010+CUDA7.5". 系统:WIN7,64位 开发平台:Visual Studio 2010 显卡:NVIDIA ...
- win7环境下配置JDK&&安装Weblogic12.2.1.4.0
win7环境下安装Weblogic12.2.1.4.0 写在前面 最近因为想复现一下weblogic的CVE-2020-2555和CVE-2020-2883漏洞,需要weblogic环境,但是vulh ...
- ubuntu 14.04LTS 环境下搭建tftp服务器
花费我一整天的时间在 ubuntu 14.04LTS 环境下搭建tftp服务器,网上好多资料参差不齐,简单来说,TFTP(Trivial File Transfer Protocol),是一个基于UD ...
随机推荐
- Ajax使用方法
什么是AJAX? AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步的JavaScrip ...
- 动态 DP 总结
目录 例题1:模拟赛题 代码: 例题2 例题3:带修改树上最大独立集. 代码: 注:部分参考 https://www.luogu.org/blog/gkxx-is-here/what-the-hell ...
- sql的九个常用语句是什么
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- File类的createNewFile()和mkdirs() mkdir()
createNewFile文件不存在则创建,存在则不创建并返回false,文件路径必须存在才可创建路径下的文件(注意它只能创建文件,即如果你给了/storage/emulated/0/hello/sn ...
- 利用webuploader实现超大文件分片上传、断点续传
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- Ubuntu16.04 安装 CUDA9.2(总结一些新手容易遇到的问题)
系统:Ubuntu16.04 64bit 显卡:Nvidia GEFORCE 940MX 驱动:NVIDIA-Linux-x86_64-396.18.run 软件:cuda_9.2.88_396.26 ...
- VMware安装Centos7超详细教程
本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定安装参考价值 在没有运维的情况下,很多时候测试需要自己搭建测试环境,而测试环境又分为QA环境,自动化测试环境,uat环境,以 ...
- CF1174E Ehab and the Expected GCD Problem(动规+数论+分解)
做法 先来填第一个数,为了保证\(f(p)\)最大,第一个数分解一下为\(\prod\limits_{p_i}p_i^{k_i}\)使得\(\sum\limits_{k_i}\)最大 显然第一个数为\ ...
- Buuctf pwn1 详细wp
目录 程序基本信息 程序溢出点 确定返回地址 编写exp脚本 成功getshell 程序基本信息 我们可以看到这是一个64程序,没有保护开启. 程序溢出点 gets函数可以读取无限字符,存在栈溢出. ...
- js的一些兼容性易错的的问题
一.属性相关 我们通常把特征(attribute)和属性(property)统称为属性,但是他们确实是不同的概念,特征(attribute)会表现在HTML文本中,对特征的修改一定会表现在元素的out ...