背景
此文记录2019.7-2019.9服务器使用所遇问题。
该项目所使用的服务器不能连外网,也不能使用 root 权限。
下述内容顺序按项目进行过程中遇到问题的先后顺序而定。
查看Linux发行版名称及其版本号
参考资料:如何查看LINUX发行版的名称及其版本号
如图所示,笔者所用服务器版本为 CentOS Linux release 7.4.1708。
常用命令
-
上传文件:rz -bey
下载文件:sz <文件名>
-
解压缩命令
-
.zip 解压:unzip <文件名>
-
.tar.gz解压:tar -zxvf <文件名>
-
.tgz解压:tar -zxvf <文件名>
参考资料:Linux下的解压命令小结
- 拷贝文件
参考资料:
scp命令
Linux 不同用户之间复制文件
软件安装
笔者使用的服务器不能连外网也不能使用 root 权限,故安装软件时使用源码编译方式,并且需要注意安装在指定目录下。
安装前还需要安装软件需要的依赖,本项目中使用到 Waf 工具辅助编译安装。
- 源码编译安装
- 获取源码,上传至服务器并解压。
- 查看README及INSTALL文件的相关信息
- configure
configures the persistent data and checks all required headers and libraries
配置相关数据,检查需要的头文件和库。- installation
builds the library and compile the main executable file
建立库,编译可执行文件。- 测试是否安装成功。
参考资料:
Linux下安装软件的3种方式
无网无root环境编译安装screen
几句话解释配置./configure --prefix的作用
- 安装 MPI
参考资料:在centos上安装MPI
知识补充:
linux如何编译cpp文件
跟我一起写 Makefile
Makefile经典教程
使用 gdb 调试 mpi 程序
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要
把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如:
cc -g hello.c -o hello
g++ -g hello.cpp -o hello
如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用
-g把调试信息加入之后,并成功编译目标代码以后,再用gdb调试。
-directory <directory>
-d <directory>
加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。
当以gdb <program>方式启动gdb后,gdb会在PATH路径和当前目录中搜索 <program> 的源文件。 如要确认gdb是否读到源文件,可使用 l 或 list 命令,看看gdb是否能列出源代码。
在gdb中,运行程序使用 r 或 run 命令。
参考资料:
gdb调试带参数程序
gdb调试mpi程序