背景
此文記錄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程序