微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何包含Apache Avro C头文件?

如何解决如何包含Apache Avro C头文件?

我正在尝试在程序中使用Apache Avro C,以更好地了解其工作原理。我下载了Apache Avro for C,并将其安装在我的系统上(CentOS 7.8.2003)。我正在尝试运行Avro documentation中提供的示例程序的副本。

// avro_test.c
#include <avro.h>
#include <stdio.h>
#include <stdlib.h>

...

我的目录结构如下:

avro_test.c
Makefile
avro-c-1.10.0
  - build
    - src
      - libavro.a
      - libavro.so
  - src
    - avro.h
    - avro
      - // Other header files referenced in avro.h

我的Makefile与提供的here相似,并列在下面:

CC=gcc
CFLAGS=-c -Wall
LDFLAGS=-lavro
SOURCES=avro_test.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=avro_test
INC_PATH=/avro-c-1.10.0/src/

INC=-I/avro-c-1.10.0/src/ -I/avro-c-1.10.0/src/avro
LIB=-L/avro-c-1.10.0/build/src

all: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
        $(CC) $(LDFLAGS) $(LIB) $(OBJECTS) -o $@

.c.o:
        $(CC) $(INC) $(CFLAGS) $< -o $@
clean:
        rm -rf *.o avro_test

从最外面的目录运行make时,出现以下错误

gcc -I/avro-c-1.10.0/src/ -I/avro-c-1.10.0/src/avro -c -Wall avro_test.c -o avro_test.o
avro_test.c:18:18: Fatal error: avro.h: No such file or directory
#include <avro.h>
                 ^
compilation terminated.
make: *** [avro_test.o] Error 1

我也尝试用<avro.h>替换"avro.h”,但是出现了相同的错误

感谢您的帮助。谢谢!

解决方法

我知道了,这对我来说是一个愚蠢的错误。在Makefile中,我将路径从绝对路径更改为相对路径(INC_PATH=/avro-c-1.10.0/src/变成了INC_PATH=./avro-c-1.10.0/src/)。更改所有路径后,问题就消失了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。