我在一本書中下載了一套程序的源代碼,並且有一個makefile。 我對Linux很新,我想知道是否有任何方法可以看到用C語言編寫的實際源代碼?如何將makefile轉換爲可讀代碼?
或我究竟做了什麼?
我在一本書中下載了一套程序的源代碼,並且有一個makefile。 我對Linux很新,我想知道是否有任何方法可以看到用C語言編寫的實際源代碼?如何將makefile轉換爲可讀代碼?
或我究竟做了什麼?
Makefile本身不包含任何源代碼。它只是一個特殊格式的指令列表,用於指定應該運行哪些命令以及以何種順序構建程序。如果你想看看源代碼在哪裏,你的Makefile可能會包含許多「filename.c」和「filename.h」。您可以使用grep
在文件中查找「.c」和「.h」的所有實例,該實例應與項目中的C源文件和頭文件相對應。下面的命令應該做的伎倆:
grep -e '\.[ch]' Makefile
要使用Makefile來構建項目,只需鍵入make
應該做一些合理的行爲。如果這不符合你的要求,請查找以冒號結尾的不縮進的行;這些是目標名稱,並且代表您可以在「make」構建項目的特定部分之後指定的不同參數,或者以某種方式構建它。例如,make install
,make all
和make debug
是常見目標。
你可能在你的系統上有GNU Make; 太多關於Makefiles的更多信息可以查到here。
謝謝先生,但再次有什麼用我得到一個生成文件。我的意思是我下載的文件,因爲他們告訴它是許多例子的源代碼,如果我沒有得到源代碼,那麼我應該學習什麼? 我完全是新來的,這是多數民衆贊成,如果闕是愚蠢的,請承擔我。我實際上應該怎麼做這件事。我確實使用過這個命令,並且我有一些文件名和所有的,那麼我該怎麼做? – yuneek 2009-12-20 09:59:20
Makefile本身並不好。它告訴系統如何將.c和.h *源代碼*文件轉換爲目標代碼,並且可能將它們鏈接到一個可執行文件中。 Makefile不包含任何C代碼。我的猜測是,那些潛伏在你從Makefile獲得的網站上的某個地方。如果該網站由Google編制索引,則Google代碼搜索(http://www.google.com/codesearch)可能會有所幫助。輸入您從Makefile獲得的文件名或您希望的代碼或評論片段的文件名,並將「lang:c」和/或「site:sitewheremycodeis.com」附加到查詢中。 – 2009-12-25 22:11:37
這聽起來像你可能沒有從書籍網站下載完整的源代碼。如前所述,Makefile
只是構建源代碼的說明,源代碼通常在名稱以.c
和.h
結尾的其他文件中找到。也許你可以看看書籍網站的更多文件下載?
或者,因爲大概是書籍網站是公開的,請告訴我們它是哪一個,並且有人會樂意指引您朝着正確的方向發展。
看起來你還需要下載SB-AllSource.zip文件。然後使用make(使用您已經下載的Makefile)來構建。
您是否說過「一本書的源代碼」?這應該是「一本書的源代碼」嗎? – pavium 2009-12-20 09:58:42
對不起,我的意思是在一本書中的程序的源代碼 – yuneek 2009-12-20 10:01:39