2012-10-13 135 views
2

我有我的项目在一个名为垃圾场的目录。在垃圾场内,我有test.c,和一个名为include的文件夹。GCC包括窗口中的头文件

我的代码如下所示:

#include <my_global.h> 
#include <mysql.h> 

int main(int argc, char **argv) 
{ 
    printf("MySQL client version: %s\n", mysql_get_client_info()); 
} 

而且两个头文件位于include文件夹(这又是在项目的根目录内所以结构的必要文件所在等。此:

垃圾场/ test.c的

垃圾场/包含/ mysql.h中

垃圾场/ include/my_global.h

请注意,我在Windows上使用GCC。我无法编译该程序,并尝试了几种方法。如何正确链接头文件?谢谢。

+1

你不链接的头文件,联动是4个编译阶段后。但是,向编译器标志添加'-Iinclude'可以解决这个问题。 – 2012-10-13 20:04:01

+0

@ H2CO3那么编译'test.c'时如何包含它们呢? – capcom

+0

你能显示确切的编译器行吗? – Zeta

回答

4

所有差的第一#include syntax之间:

  • #include <>是指包括从“编译目录”(其可以由preprocessor option -I设置)文件
  • #include ""是指包括从“本地目录”
  • 文件

如果你想从你的项目中包含文件,你可能应该使用:

#include "include/mysql.h" 
#include "include/my_global.h" 

如果你(因为某些原因)希望仍然使用#include <>使用gcc这样的:

gcc -Iinclude test.c 
+0

如果标题位于称为标题的文件夹而不是包含文件夹中,'I包括'是'-Iheaders'吗? – capcom

+0

@capcom是的,他们会,我已经添加了一个链接,它描述了它在海湾合作委员会“手册” – Vyktor