如何解决如何包含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] 举报,一经查实,本站将立刻删除。