0
我試圖寫一個shell命令來查找和編譯所有的C程序我試圖寫一個shell命令來查找和編譯所有的C程序
find . -type f -name '*.c' -exec sh -c 'gcc {} -o $(dirname {})/$(basename {} .c)' \;
就是我現在擁有的,它實際上編譯所有的C文件,但它也返回這些錯誤。
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
我完全卡住了,任何幫助將非常感激。
也許這些.c文件中的一些沒有main(),所以結果並不太令人意外,因爲您正在嘗試將每個文件編譯並鏈接到可執行文件中。 – 2013-05-13 08:51:59
顯示你的文件的include部分,也許這裏有一些依賴的錯誤。 – prehistoricpenguin 2013-05-13 08:53:19
除非您知道每個.c文件都是自包含的可執行文件,否則這樣做沒有任何意義。一些帶有源文件的目錄可能使用'Makefile'或'configure'腳本。你真的想要解決什麼問題? – 2013-05-13 08:58:29