【问题标题】:Header file path in a C fileC文件中的头文件路径
【发布时间】:2015-01-29 08:41:31
【问题描述】:

我的项目被组织在一个文件夹中

myproj/
       src/
           main.c
       inc/
           main.h
       makefile

我的 C 文件中有

 #include <main.h>

在我的makefile中我有

INCLUDE = /inc
SOURCE = src/

compile:
    $(CC) -I$(INCLUDE) $(CFLAGS) $(SRCPATH)main.c -o myapp $(LIBS)

myapp: 
    $(CC) -I$(INCLUDE) $(FLG_LIB) -o myapp main.c  

但我得到 - 致命错误:没有这样的文件或目录。

我也试过“main.h”,但没用。

【问题讨论】:

  • #include "../inc/main.h"?
  • 也许这很傻,但SOURCESRCPATH 之间可能不匹配?
  • 只是为了了解#include &lt;...&gt;#include "..."的区别,你可以看看here
  • 看看this
  • #include &lt;main.h&gt; 建议编译器/链接器应在库路径中查找此文件,而 #include "main.h" 建议应在您的本地源代码中查找。因此,对于您自己的文件,请始终使用后一种形式。

标签: c linux makefile


【解决方案1】:

'INCLUDE=/inc'更改为'INCLUDE=inc/'再试一次(注意:修剪' '前后的空白字符'=')。

顺便说一句,在你的情况下使用#include ""而不是#include &lt;&gt;,因为第一次使用让编译器首先从本地路径然后从系统路径中找到头文件,后一个(使用&lt;&gt;)是对面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    相关资源
    最近更新 更多