2011-03-02 39 views
6

我想在我的2個頭文件的gcc中編譯一個C程序。如何在具有頭文件的gcc中編譯C程序?

我使用命令:

gcc UDP_Receive.c -o UDP_Receive -lm

編譯它,但我得到一個錯誤,指出 「UDP_Data.h:沒有這樣的文件或目錄」

我怎麼能告訴編譯器包含這些頭文件?

頭文件:

的#include 「UDP_Data.h」

的#include 「Crypt.h」

感謝, 僅限Ritesh

+0

杜佩http://stackoverflow.com/questions/973146/how-to-include-header-files-in-gcc-search-path的 – GrahamS 2011-03-02 10:01:43

回答

6

使用-Idirectory添加包括路徑,或使您的#include語句使用相對路徑。

編輯: 也請注意,#include文件名在許多平臺上都區分大小寫。

EDIT2: 使用#include "UDP_Data.h"#include <UDP_Data.h>

+0

我的頭文件與我的源代碼文件位於相同的位置。 – 2011-03-02 09:49:54

+0

我的頭文件與我的源代碼文件位於相同的位置。你能不能請一個詳細的例子來引導我完成編譯過程。謝謝 – 2011-03-02 09:51:14

+2

文件名是否正好是'UDP_Data.h'?沒有例如'UDP_data.h'? – Erik 2011-03-02 09:52:33

4

你告訴編譯器包含這個文件,用這樣一行:

#include "UDP_Data.h" 

問題是編譯器無法找到該文件,不要忘記,一些平臺在文件名方面是區分大小寫的,所以「UDP_data.h」與「UDP_Data.h」不是同一個文件。默認情況下,編譯器會在幾個地方進行搜索,但是您需要使用命令行選項爲搜索添加額外的目錄。確切的選項將取決於編譯器,對於GCC是:

-I<directory> 
+0

@Jim:如果該行不在源文件中,您將如何得到該錯誤? (當然,除了額外的命令行選項!) – Skizz 2011-03-02 10:01:54