【问题标题】:GCC including header files in windowsGCC 包括 windows 中的头文件
【发布时间】:2012-10-13 20:02:57
【问题描述】:

我的项目位于一个名为 junkyard 的目录中。在垃圾场内,我有 test.c 和一个名为 include 的文件夹。

我的代码如下所示:

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

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

并且这两个头文件位于包含文件夹中(同样位于项目的根目录中。因此,结构的必要文件位于以下位置:

垃圾场/test.c

垃圾场/include/mysql.h

垃圾场/include/my_global.h

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

【问题讨论】:

  • 你不要链接头文件,链接是4个编译阶段之后。但是,将-Iinclude 添加到编译器标志可能会解决此问题。
  • @H2CO3 那么在编译test.c时如何包含它们呢?
  • 你能显示确切的编译器行吗?
  • @capcom 这很糟糕。你不需要斜线。仅限gcc -Iinclude test.c
  • @capcom 如果您正在寻找绝对路径。

标签: c gcc header


【解决方案1】:

首先#include syntax之间的区别:

  • #include &lt;&gt; 表示包含“编译器目录”中的文件(可以通过preprocessor option -I 设置)
  • #include "" 表示包含“本地目录”中的文件

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

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

如果您(出于某些原因)仍想使用#include &lt;&gt;,请像这样使用 gcc:

gcc -Iinclude test.c

【讨论】:

  • 如果标题位于名为 headers 而不是 include 的文件夹中,-Iinclude 是否会是 -Iheaders
  • @capcom 是的,他们会的,我添加了一个链接,在 gcc“手册”中描述它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-11
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
  • 2017-01-16
相关资源
最近更新 更多