系统、程序编译和软件安装:一般问题


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换成上网账号的密码。
5.问:Ubuntu如何更换国内源?
 答: 
  https://zhuanlan.zhihu.com/p/348186774
或者
https://blog.csdn.net/qq_35451572/article/details/79516563

如果更新源后如果遇到错误:The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3B4FE6ACC0B21F32
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32
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 网址
   
8.问:Win10/11休眠或进入屏保后,USB鼠标键盘失灵
 答: 
  在“高级电源设置”中找到“USB设置”,把里面的选项设为禁用。如果没有“USB设置”这一项,需要修改注册表。搜索找到UsbPowerSelSup。其余修改见 https://www.zhihu.com/question/331095461