程序编译:一般问题


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
  • GCC头文件的路径C_INCLUDE_PATH
  • G++头文件的路径CPLUS_INCLUDE_PATH
  • 动态链接库的路径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换成上网账号的密码。