故障排除
问题一:petsc配置过程中报错
现象描述:
运行./configure后报错,报错信息如下:
. This script, last modified 2008-01-23, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
可能原因:
“config.guess”和“config.sub”两个证书过期。
处理步骤:
- 执行以下命令搜索“config.guess”和“config.sub”文件。
find ./ -name config.guess find ./ -name config.sub
- 将文件中的内容更新为网址中的内容。
问题二:Boost安装过程中报错
现象描述:
运行./b2 install后报错,报错信息:“gcc: error: unrecognized command line option ‘-m64’”。
可能原因:
-m64是x86 64位应用编译选项,m64选项设置int为32bits及long、指针为64bits,为AMD的x86 64架构生成代码。在ARM64平台无法支持。
处理步骤:
执行以下命令修改Boost中的源码,将ARM64平台对应的编译选项设置为-mabi=lp64:
sed -ri 's/\-m64/\-mabi=lp64/g' `grep -Rl '\-m64'`
问题三:Python配置过程中报错
现象描述:
运行./configure后报错,报错信息:“gcc: error: directory": No such file or directory”。
可能原因:
Python老版本的bug。
处理步骤:
执行以下命令:
SVNVERSION=not-found ./configure
问题四:Chaste安装过程中报错
现象描述:
运行make -j48 Continuous后报错,报错信息:“AttributeError: 'str' object has no attribute 'format'”。
可能原因:
Format是python2.6新增的一个格式化字符串的方法。
处理步骤:
执行以下命令修改“translators.py”文件。
- 打开“translators.py”文件。
vim /path/to/CHASTE/Chaste-release_2019.1/python/pycml/translators.py
- 按“i”进入编辑模式,修改如下内容。
将1838行取消注释,将1839行注释掉。
修改前:
1830 #self.writeln('std::cout << "Too small: ', self.code_name(var), ' = " << ', self.code_name(var) , ' << std::endl << std::flush;') 1831 self.writeln(error_template.format(self.var_display_name(var))) 1832 self.close_block(False) 1833 for var in high_range_vars: 1834 if using_cvode: 1835 additional_tolerance_adjustment = ' + tol' 1836 self.writeln('if (', self.code_name(var), ' > ', var.get_rdf_annotation(high_prop), additional_tolerance_adjustment, ')') 1837 self.open_block() 1838 #self.writeln('std::cout << "Too large: ', self.code_name(var), ' = " << ', self.code_name(var) , ' << std::endl << std::flush;') 1839 self.writeln(error_template.format(self.var_display_name(var)))
修改后:
1830 self.writeln('std::cout << "Too small: ', self.code_name(var), ' = " << ', self.code_name(var) , ' << std::endl << std::flush;') 1831 #self.writeln(error_template.format(self.var_display_name(var))) 1832 self.close_block(False) 1833 for var in high_range_vars: 1834 if using_cvode: 1835 additional_tolerance_adjustment = ' + tol' 1836 self.writeln('if (', self.code_name(var), ' > ', var.get_rdf_annotation(high_prop), additional_tolerance_adjustment, ')') 1837 self.open_block() 1838 self.writeln('std::cout << "Too large: ', self.code_name(var), ' = " << ', self.code_name(var) , ' << std::endl << std::flush;') 1839 #self.writeln(error_template.format(self.var_display_name(var)))
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。