2011-05-28 38 views
0

所以我正在寫一個C文件,其中包括/extfs/ext2fs.h。我試圖調用函數ext2fs_open()。我可以清楚地看到頭文件ext2fs.h具有該特定功能。事實上,如果我傳遞了不正確的參數數量,它甚至會糾正我。但它不編譯,總是給我一個「未定義的參考」錯誤。這個問題在於頭文件中定義的所有方法。我該如何編譯這個文件?有什麼圖書館我需要鏈接到?編譯文件,其中包括ext2fs.h

謝謝。

回答

2

你需要鏈接到libext2fs,是...

gcc -I/dir/containing/ext2fs.h -lext2fs your_source.c -o app 
+0

三江源。但我仍然有點困惑。當你說應用程序,你的意思是可執行文件的名稱,我希望它是正確的?如果是這樣,我無法運行與該應用程序的命令。例如我的源代碼是myfile.c。我做到了:gcc -I/ext2fs/ext2fs.h -lext2fs myfile.c myfile - 但那不起作用。我從後面刪除了myfile並編譯。不過,我有一個a.out文件,這到底是什麼?我想要一個可執行文件運行。 – Catie 2011-05-28 08:51:46

+0

對不起,我的錯。更新了答案。你需要使用'-o myfile'。另外,將完整路徑放在* directory *的完整路徑中,其中文件'ext2fs.h'位於'-I'參數之後,而不是*文件*的完整路徑。 – rid 2011-05-28 08:54:40

+0

非常感謝! – Catie 2011-05-28 08:57:04