cndaqiang Web Linux DFT

macOS配置科学计算环境

2019-06-08
cndaqiang
RSS

本文后续更新地址mac配置开发环境

更新

HomeBrew

Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

添加PATH

PATH=/usr/local/bin:$PATH

之后安装的程序都在/usr/local/bin里,包括各版本的python,gcc等

gcc

当然要用祖传代码兼容性最好的gcc-4

~/soft/gcc $ brew search gcc
==> Formulae
gcc                 gcc@5               gcc@7               i386-elf-gcc
gcc@4.9 ✔           gcc@6               gcc@8
~/soft/gcc $ 

安装软件包

brew install gcc@4.9

安装之后

~/soft/gcc $ gcc
gcc             gcc-ar-4.9      gcc-ranlib-4.9  
gcc-4.9         gcc-nm-4.9    
~/soft/gcc $ gcc-4.9 --version
gcc-4.9 (Homebrew GCC 4.9.4_1) 4.9.4
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

在PATH路径建立软连接
替换系统的gcc
因为makefile并不会识别环境中的alias指令,因此要通过软连接的形式,将gfortran指向gfortran-4.9

#注ar,nm,randlib使用gcc-4.9带的,会各种baocuo
#以测试通过,使用系统默认的打包程序无异常
ln -s   /usr/local/bin/gcc-4.9 gcc
ln -s   /usr/local/bin/gfortran-4.9     gfortran
ln -s   /usr/local/bin/cpp-4.9          cpp
ln -s   /usr/local/bin/c++-4.9          c++
ln -s   /usr/local/bin/g++-4.9          g++
ln -s   /usr/local/bin/gcov-4.9 gcov

其他程序

其实除了打包程序使用系统的外,其他编译过程与linux没啥区别了。。。。
连指令都一样
如openmpi,。。。,siesta的安装,完全可以按照我博客上的内容来

编译相关

mac的动态库环境变量是

#动态
export DYLD_LIBRARY_PATH=XXXX:$DYLD_LIBRARY_PATH
#但是不保证一些程序,不去读取LD_LIBRARY_PATH
#静态
LIBRARY_PATH
#库里还有这个,如 /opt/intel/oneapi/compiler/2022.2.0/lib/pkgconfig
PKG_CONFIG_PATH
#其他
cndaqiang@macmini git$ echo $CPATH
/opt/intel/oneapi/mkl/2022.2.0/include:/opt/intel/oneapi/mkl/2022.2.0/include
cndaqiang@macmini git$ echo $NLSPATH
/opt/intel/oneapi/mkl/2022.2.0/lib/locale/%l_%t/%N:/opt/intel/oneapi/mkl/2022.2.0/lib/locale/%l_%t/%N:/opt/intel/oneapi/compiler/2022.2.0/mac/compiler/lib/intel64_mac/locale/%l_%t/%N:/opt/intel/oneapi/compiler/2022.2.0/mac/compiler/lib/locale/%l_%t/%N

检查程序依赖的库,修改程序依赖的库. 在哪里记录了,忘记了,将来遇到搬运过来

mac默认不区分大小写

(base) cndaqiang@macmini ACBN0_test$ ls H2
Ni_ONCV_PBE_fr.upf clean.sh           input.in           nscf.input.in      result             run.sh
O_ONCV_PBE_fr.upf  input              main.py            projwfc.input.in   run-tdpw-sslab2.sh
(base) cndaqiang@macmini ACBN0_test$ ls h2
Ni_ONCV_PBE_fr.upf clean.sh           input.in           nscf.input.in      result             run.sh
O_ONCV_PBE_fr.upf  input              main.py            projwfc.input.in   run-tdpw-sslab2.sh

本文首发于我的博客@cndaqiang.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!


类似文章


评论


广告


广告
访客数据