mingw不能安装_IBSimu在win10分系统ubuntu的安装和计算详细教程

在分享|国外一款用于离子束仿真的开源软件IBSimu一文中介绍了国外开源的一个程序包IBSimu,用来仿真离子源的引出过程,并且给出了安装过程,但是在实际操作过程中我发现使用msys2+mingw的方式总是出现问题,尝试了两天后依然没解决zlib库的问题,听朋友说在win10上安装ubuntu比较不错,于是尝试了这个,找到国外一个教程,发现还是有问题,果然菜是原罪,折腾了两天发现依然是环境配置有问题,今天下午找到我一个会linux的师弟,折腾了整整半天终于搞定了,我现在分享出来。 首先是ubuntu的安装 关于在windows系统上安装ubuntu的教程请看适用于 Linux 的 Windows 子系统安装指南 (Windows 10),按照这个教程一步步操作就行,需要说明的一点是需要检查CPU是否开启的虚拟化,没有的话需要在bios界面开启虚拟化,结果如下图所示。开启bios虚拟化的过程请参考百度知道: 电脑怎么在bios开启虚拟化 。 eacc1b5b1a1a0595a564f9eb0169fd7c.png 另一个需要注意的点是先更新windows系统,最好更新到最新的win10,在windows官方系统有说,我使用的是2004版本,win+R然后输入winver,确定后即可查看自己的系统版本。更新版本很费时间,我这边花了大半天时间。 576cd7a481196d750057cfb76f1b5e52.png 然后是在ubuntu上安装和编译IBSimu,详细过程如下 这是在国外一个安装教程的基础之上进行的修改。

安装库环境

ubuntu 环境为例,CentOS等是相似的。
sudo apt install libcairo2-devsudo apt install libgsl-devsudo apt install libgtk-3-devsudo apt install gcc
除了这些库,可能还需要gsl等,这个库无法直接安装,如何安装请看下文。 下载IBSimu
git clone git://ibsimu.git.sourceforge.net/gitroot/ibsimu/ibsimu

编译

cd ibsimu./reconf./configure --prefix=`pwd`make -j4 ##4核或者8核,我这里用的4核make install
老外: 你可能需要将“./configure”行中的前缀路径调整为下载存储库的文件夹,即更改‘’pwd‘ 注:pwd指令意为返回当前执行命令的目录,而`pwd`的意思是先运行pwd后把结果填上去,但是有的环境有可能不能这么写,比如在ubuntu下这个指令可以正常执行,但在一个全新的arch虚拟机里,就得写成./configure --prefix=/home/yyxc-1993/ibsimu 在实际操作过程中,在./reconf这个环节遇到了一些问题 bfa55a3c22bc4a1c4f917aca508fb834.png 这里显示库安装不全面,还有一些其他的库需要安装。按照上图提示,通过搜索包含相关库的源获取,然后安装。 过程如下: 对于ubuntu系统,可用apt-file包查询缺失的文件,用sudo apt install apt-file命令安装apt-file。
sudo apt install apt-file# 假设缺失的文件是cairo2sudo apt-file update# 第一次用要用update命令刷新缓存sudo apt-file search cairo2# 在返回的结果里,左侧一列是软件包名,右侧一侧是查找到的文件名,在软件包名中找一个看上去差不多的包安装(依赖装多了没关系),例如libcairo2-dev这个sudo apt install libcairo2-dev
对于arch系统,由于其包管理系统更加健全,可直接安装报错中提到的包,例如
# ...checking for cos in -lm... yeschecking for LIBPNG... yeschecking for FONTCONFIG... yeschecking for FREETYPE... yesconfigure: error: required library cairo not found# 报错提示cairo包找不到sudo pacman -S cairo
这里还出现了另一个问题,如果环境配置好了还是无法通过编译,可能是由于之前configure命令导致配置出错,可以尝试重新git clone IBSimu库再执行编译的步骤。 到这里,IBSimu的安装就完成了,接下来是如何做一个仿真案例。 接下来遇到了路径的问题,我这里直接给出结果

环境变量设置

老外: 在你编译任何项目之前,你必须设置好环境变量。 下面是我在arch虚拟机里运行的结果,可以看到最终编译的结果被安放在了圈出来的位置。在之前的ubuntu虚拟机里,这个结果是 /home/yyxc-1993/code/ibsimu/lib/pkgconfig a59aba93fa6a94e579e187b6098426be.png 现在,要设置两个环境变量,以便在以后的程序运行中让编译器能顺利找到本次安装的程序。你可以直接在终端里运行以下命令
export PKG_CONFIG_PATH="/home/yyxc-1993/code/ibsimu/lib/pkgconfig"export LD_LIBRARY_PATH="/home/yyxc-1993/code/ibsimu/lib"
如果你不想每次打开终端都输入一遍的话,往下看。 老外: 如果你想在任何时候打开一个新的控制台/终端,你可以把这些命令放到你的“.bashrc”中。首先找到当前路径: 注:bash是linux的默认shell,每当你打开一个linux终端时,bash都会读取目录下.bashrc文件中的参数。你也可以输入source ~/.bashrc来立即让bash读取这个文件,而不用重新打开一个终端。 注:如果你使用的不是bash,例如zsh,要更改的文件就是.zshrc
cdnano ~/.bashrc
老外: 复制这两个路径放到最后并保存
export PKG_CONFIG_PATH="/home/yyxc-1993/code/ibsimu/lib/pkgconfig"export LD_LIBRARY_PATH="/home/yyxc-1993/code/ibsimu/lib"
注:这两个位置是根据编译最后一步的结果来定的,例如如果是我在arch虚拟机中的结果,这两句就是这样
export PKG_CONFIG_PATH="/home/xuwanqian/code/ibsimu/lib/pkgconfig"export LD_LIBRARY_PATH="/home/xuwanqian/code/ibsimu/lib"

makefile的设置

CC = g++LDFLAGS = `pkg-config --libs ibsimu-1.0.6dev`CXXFLAGS = -Wall -g `pkg-config --cflags ibsimu-1.0.6dev`vlasov2d: vlasov2d.o$(CC) -o vlasov2d vlasov2d.o $(LDFLAGS)vlasov2d.o: vlasov2d.cpp$(CC) -c -o vlasov2d.o vlasov2d.cpp $(CXXFLAGS)clean:$(RM) *~ *.o vlasov2d ##vlasov2d是cpp文件的文件名
设置好之后,直接在windows下建立一个test文件夹,然后建立一个txt文档,将名字改成makefile代码里面的同名文件,格式更改为.cpp,输入需要计算的模型代码(案例请看上一篇更新,直接复制即可) 再建立一个空白txt文档,命名为makefile文档,删除.txt保存。然后采用记事本打开这个文档,复制上面的代码(按需修改)。 然后在test文件夹空白处【shift+右键】【在此处打开linux shell】,输入make开始编译,最后再键入编译好的结果开始计算,我这里的命名是vlasov2d。
make./vlasov2d
至此完成计算。 结果如下: 8c466e88cd4b572fe668f746c2b93d92.png f569b2ce14085729fe778b14cb2a2cf5.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值