本文后续更新地址mac配置开发环境
更新
- 2024-01-26 现在使用oneapi+mpich 编译计算软件,如怀柔计算中心/SSLAB/新SSLAB编译/MacOS octopus记录及Intel编译报错
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 协议 ,转载请注明出处!