HUSTOJ後端代碼中makefile解讀

HUSTOJ分爲前端和後端兩部分 web和core。
後端又分爲judge_client judged sim 三部分
然後本文寫的是 core,judge_client,judged三個文件夾下面的makefile,(sim部分暫且還沒看)讀懂makefile可以有效的幫助你理解大體的運行流程。如果有好的見解,歡迎私聊我交流或者在下方評論 我的個人郵箱:[email protected]

#!/bin/bash	
cd judged	//進入到judged 
make	 
chmod +x judged		//對judged授予可執行權限 
cp judged /usr/bin	//複製judged到bin目錄下 
cd ../judge_client	//  返回上一級後進入到judge_client 
make
chmod +x judge_client	//對judge_client授予可執行權限 
cp judge_client /usr/bin	//複製judge_client到bin目錄下 
cd ../sim/sim_3_01		//返回上一級後進入到sim_3_01 
make fresh
make exes
chmod +x sim*		//對sim作爲前綴的文件授予可執行權限 
cp sim_c.exe /usr/bin/sim_c	//複製sim_c.exe到  /usr/bin/sim_c下 
cp sim_c++.exe /usr/bin/sim_cc//複製sim_c++.exe到  /usr/bin/sim_cc下 
cp sim_java.exe /usr/bin/sim_java //複製sim_java.exe 到/usr/bin/sim_java 
cp sim_pasc.exe /usr/bin/sim_pas  //複製sim_pasc.exe 到/usr/bin/sim_pas
cp sim_text.exe /usr/bin/sim_text  //複製sim_text.exe 到/usr/bin/sim_text 
cp sim_lisp.exe /usr/bin/sim_scm  //複製sim_lisp.exe 到/usr/bin/sim_scm
cd ..
cp sim.sh /usr/bin	//複製sim.sh 到/usr/bin 
chmod +x /usr/bin/sim.sh	//對該文件授予可執行權限 
ln -fs /usr/bin/sim_c /usr/bin/sim_cc 2>&1 > /dev/null
echo "done!"

#judge_client/makefile
all: judge_client.cc
	g++ -Wall -c -I/usr/local/mysql/include/mysql -I/usr/include/mysql judge_client.cc
	g++ -Wall -o judge_client judge_client.o -L/usr/local/mysql/lib/mysql -L/usr/lib/mysql  -L/usr/lib64/mysql -lmysqlclient
// -Wall編譯後顯示所有警告	-I將按照後面那個目錄搜索頭文件 
//-L 編譯程序按照-L指定的路進去尋找庫文件 

#judged/makefile
all: judged.cc
	g++ -Wall -c -I/usr/local/mysql/include/mysql -I/usr/include/mysql  judged.cc
	g++ -Wall -o judged judged.o -L/usr/local/mysql/lib/mysql -L/usr/lib/mysql  -L/usr/lib64/mysql  -lmysqlclient
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章