由於makeifle檔案執行失敗時會退出編譯,當遇到編譯錯誤時,後續的c檔案就不能繼續執行,即便c檔案之間不存在依賴關係,用shell可以簡便的實現遇到錯誤繼續執行編譯。
#!/usr/bin/bash
va1=/home/zhaozl/dir
sva1=$"/sdir/src"
sva2=$"/sdir/inc"
va2=/home/zhaozl/si
bva2=$"/lib"
bva4=$"/common/inc"
va3="-g -ansi -wall -wextra -i$ -i$ -i$"
rm 2.log
rm -rf /home/zhaozl/dir/sdir/*.o
rm -rf $"/*.o"
touch 2.log
for file in $"/*.c"
docc -c $ $ 2>>2.log
done
bash 檔案測試
a e 檔案存在 存在性類別測試 b 存在且為塊裝置檔案 例如 b etc grub2.cfg c 字元裝置 d 目錄檔案 f 普通檔案 p 命名管道檔案 h l 符號鏈結檔案 s 套接字檔案 許可權測試 r w x 檔案是否存在並且擁有。許可權 特殊許可權 g 存在且存在sgid許可權 u sui...
c檔案編譯過程
編譯的完整過程 c源程式 預編譯處理 生成.c檔案 編譯 優化程式 生成.s s asm檔案 匯程式設計序 生成.obj o a ko檔案 鏈結程式 生成.exe slf axf hex檔案 預處理 將所有的偽指令和特殊符號進行替換,經過替換,生成乙個沒有巨集定義,沒有條件編譯指令,沒有標頭檔案,沒...
gcc編譯c 檔案
gcc是編譯c語言的,預設情況下,如果直接編譯c 程式,會報錯 root server demo2 ls hello.cpp root server demo2 cat hello.cpp include using namespace std int main endifcircle.cpp in...