2011-03-02 44 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