如何在makefile中包含头文件目录

时间:2017-03-16 17:50:37

标签: makefile contiki

    ### Compiler arguments
#CC = gcc
gcc -I/usr/lib/jvm/jdk1.8.0_121/include/jni.h
CFLAGSNO = $(EXTRA_CC_ARGS) -Wall -g -I/usr/local/include -DCLASSNAME=$(CLASSNAME)
CFLAGS   += $(CFLAGSNO)

当我尝试将其输入makefile时,我收到此错误:

  

让TARGET = cooja干净   ../../../platform/cooja/Makefile.cooja:74:***缺少分隔符(你的意思是TAB而不是8个空格?)。停止。   进程返回错误代码2

我遇到这条线的问题: gcc -I / usr / lib / jvm / jdk1.8.0_121 / include / jni.h

根据其他帖子的说明,我按照这些说明操作:

解决问题

您可以通过将Spaces更改为实际Tab字符来解决此问题。我用vim来修复我的文件。只需打开它:

$ vim makefile

然后在以下命令中运行此命令:

:%s/^[ ]\+/^I/

这将用一个实际的Tab替换所有以1个或多个Spaces开头的行。

但仍然无法正常工作 如何将其包含在makefile中?

2 个答案:

答案 0 :(得分:0)

您的编辑器是否使用空格而不是标签?
GNU Make在Makefile中需要真正的制表符。

答案 1 :(得分:0)

您可以使用-I标志链接标头。例如-Icurl /,它将包含该目录中的所有标题。

示例方式:

INCLUDE_DIR = app/curl/include
CFLAGS=-c -Wall -I$(INCLUDE_DIR )

回答您的问题:

错误:Makefile:8:***缺少分隔符(你的意思是TAB而不是 8个空格?)。停止。

  

这是经典问题。 Makefile只接受制表符缩进   4个空格不是8.更改编辑器的设置,用于设置选项卡   宽度为4,这将解决您的问题。