1. | 问: | 已经为Intel MKL库设定了正确的LD_LIBRARY_PATH,但是编译出现错误:“ld: cannot find -lmkl”。 | | 答: | | | | MKL库从10.2版开始,已经删除了所有的虚拟库函数。如果一些比较老的源代码用到了这些库函数,可以自己创建它们。进入MKL的lib子目录后,执行如下操作: 1,vi libmkl.so 2,把以下内容写入libmkl.so:GROUP(-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core) 3,保存文件 |
2. | 问: | 为老版本PGI for Windows编译器写的Makefile,如何用于现在的PGI? | | 答: | | | | 对于6.0以前的PGI for Windows编译器,目标文件的扩展名为*.o,而6.0以后改为*.obj。如果不想修改Makefile,可以设定 set PGI_OBJSUFFIX=o |
3. | 问: | 有哪些常见的Linux系统变量用于设定路径? | | 答: | | | | - 可执行文件的路径PATH
- C预处理头文件的路径C_INCLUDE_PATH
- C++预处理头文件的路径CPLUS_INCLUDE_PATH
- CPATH可用于所有语言的预处理
- 动态链接库的路径LD_LIBRARY_PATH
- 静态库的路径LIBRARY_PATH
|
4. | 问: | 在内网编译程序时,有时需要登陆外网下载。如何在命令行下登录网关? | | 答: | | | | 假定http://10.0.1.242/a70.htm是内网网关的登陆网址。登陆命令为: curl 'http://10.0.1.242/a70.htm' --data "DDDDD=user_id&upass=password&0MKKey=" 上面的user_id换成上网账号的用户名,password换成上网账号的密码。 |
6. | 问: | ifort、icc编译器遇到错误Fatal compilation error: Out of memory asking for ... | | 答: | | | | 内存不够所致,可能由以下原因导致:- 优化级别太高。可以降低优化级别(例如-O3降到-O1)。
- 源文件太大。可以把不同子程序分割成小文件分别编译。
- make用了多进程。改用make -j1编译。
- 编译器bug。
|
7. | 问: | 如何下载整个网站? | | 答: | | | | wget -c -r -np -k -L -p 网址 |
9. | 问: | Ubuntu运行sudo apt-get update,出现类似以下的出错信息: E: The repository 'https://mirrors.ustc.edu.cn/ubuntu eoan Release' does not have a Release file. | | 答: | | | | 在 /etc/apt/sources.list 文件中,将https改为http。如果不能解决问题,可能是系统Ubuntu太旧,需要用旧仓库的软件源,把 /etc/apt/sources.list 文件中地址改为http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ |
|