2009-12-20 93 views
0

我在一本書中下載了一套程序的源代碼,並且有一個makefile。 我對Linux很新,我想知道是否有任何方法可以看到用C語言編寫的實際源代碼?如何將makefile轉換爲可讀代碼?

或我究竟做了什麼?

+0

您是否說過「一本書的源代碼」?這應該是「一本書的源代碼」嗎? – pavium 2009-12-20 09:58:42

+0

對不起,我的意思是在一本書中的程序的源代碼 – yuneek 2009-12-20 10:01:39

回答

1

Makefile本身不包含任何源代碼。它只是一個特殊格式的指令列表,用於指定應該運行哪些命令以及以何種順序構建程序。如果你想看看源代碼在哪裏,你的Makefile可能會包含許多「filename.c」和「filename.h」。您可以使用grep在文件中查找「.c」和「.h」的所有實例,該實例應與項目中的C源文件和頭文件相對應。下面的命令應該做的伎倆:

grep -e '\.[ch]' Makefile

要使用Makefile來構建項目,只需鍵入make應該做一些合理的行爲。如果這不符合你的要求,請查找以冒號結尾的不縮進的行;這些是目標名稱,並且代表您可以在「make」構建項目的特定部分之後指定的不同參數,或者以某種方式構建它。例如,make install,make allmake debug是常見目標。

你可能在你的系統上有GNU Make; 太多關於Makefiles的更多信息可以查到here

+0

謝謝先生,但再次有什麼用我得到一個生成文件。我的意思是我下載的文件,因爲他們告訴它是許多例子的源代碼,如果我沒有得到源代碼,那麼我應該學習什麼? 我完全是新來的,這是多數民衆贊成,如果闕是愚蠢的,請承擔我。我實際上應該怎麼做這件事。我確實使用過這個命令,並且我有一些文件名和所有的,那麼我該怎麼做? – yuneek 2009-12-20 09:59:20

+0

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

2

這聽起來像你可能沒有從書籍網站下載完整的源代碼。如前所述,Makefile只是構建源代碼的說明,源代碼通常在名稱以.c.h結尾的其他文件中找到。也許你可以看看書籍網站的更多文件下載?

或者,因爲大概是書籍網站是公開的,請告訴我們它是哪一個,並且有人會樂意指引您朝着正確的方向發展。

+0

本書是opengl superbible, ,我無法通過自己輸入的方式讓本書中的代碼工作 所以我想知道如果我得到源代碼,我可以找出ma錯誤。 我得到的鏈接是http://www.starstonesoftware.com/OpenGL/ – yuneek 2009-12-20 10:12:33

+0

你從那個頁面下載了哪個文件? – 2009-12-20 10:14:43

+0

最後一個linux make文件 – yuneek 2009-12-20 10:16:42

0

看起來你還需要下載SB-AllSource.zip文件。然後使用make(使用您已經下載的Makefile)來構建。

+0

先生,會發生什麼我建立後? 我應該怎麼處理它? – yuneek 2009-12-20 10:23:31

+0

先生得到它 謝謝你的幫助,它只是在不同的文件夾:) – yuneek 2009-12-20 10:29:06