我已将“.c”文件链接到另一个文件。ld
不返回任何错误,但编译器在此“.c”文件中找不到包含的头文件并返回此错误:
../libvmi/driver/xen.c:27:20: fatal error: libvmi.h: No such file or directory
这是我的项目的 Makefile:
## Source directory
SUBDIRS =
INCLUDES = -I$(top_srcdir) $(top_srcdir)/libvmi
AM_LDFLAGS = -L$(top_srcdir)/libvmi/.libs/ $(top_srcdir)/libvmi/driver $(top_srcdir)/libvmi/libvmi.h
LDADD = -lvmi -lm $(LIBS) $(top_srcdir)/libvmi/driver/xen.c $(top_srcdir)/libvmi/libvmi.h
bin_PROGRAMS = module-list process-list map-symbol map-addr dump-memory
module_list_SOURCES = module-list.c
process_list_SOURCES = process-list.c
map_symbol_SOURCES = map-symbol.c
map_addr_SOURCES = map-addr.c
dump_memory_SOURCES = dump-memory.c
正如你在上面看到的,我认为我应该将 "$(top_srcdir)/libvmi" 添加到 "INCLUDES"; 这是所在的目录libvmi.h
。
原始的 Makefile 是:
## Source directory
SUBDIRS =
INCLUDES = -I$(top_srcdir)
AM_LDFLAGS = -L$(top_srcdir)/libvmi/.libs/
LDADD = -lvmi -lm $(LIBS)
c_sources = process-list.c $(top_srcdir)/libvmi/driver/xen.c
bin_PROGRAMS = module-list process-list map-symbol map-addr dump-memory
module_list_SOURCES = module-list.c
process_list_SOURCES = $(c_sources)
map_symbol_SOURCES = map-symbol.c
map_addr_SOURCES = map-addr.c
dump_memory_SOURCES = dump-memory.c
我已将其修改为将“libvmi/driver/xen.c”链接到位于不同目录中的 process-list.c 文件。
这是因为 Makefile 出了点问题,是吗?