makefile没有这样的文件或目录:libxml/xmlstring.h

makefile no such file or directory: libxml/xmlstring.h

本文关键字:libxml xmlstring 文件 makefile      更新时间:2023-10-16

我不习惯制作makefile。我的旧项目已经准备好了所有的makefile,我正在从头开始做这个小测试,其中有很多我不习惯的固定lib依赖项。我已经有几年没有看makefiles了。

我有一个名为libopcTest的目录,其中包含以下内容:

LibOPCTest.cc
LibOPCTest.h
makefile

makefile中包含以下内容:

INC=-I/usr/include/libxml2/libxml
LIB=-L/usr/include/libxml2/libxml
all: LibOPCTest.exe
LibOPCTest.exe: LibOPCTest.o
>tab> gcc -o LibOPCTest.exe LibOPCTest.o
LibOPCTest.o: LibOPCTest.cpp
>tab> gcc -c $(INC) $(LIB) LibOPCTest.cpp
clean:
>tab> rm LibOPCTest.o LibOPCTest.exe

我查看了/usr/include/libxml2/libxml,其中确实有xmlstring.h。我在opc.h中没有看到libxml引用,但很明显,这就是它的用武之地,可能是在一个include文件中,比如config.h。

此外,我们还有LibOPCTest.cpp,它#包括<opc/opc.h>和它自己的.h文件。

main在LibOPCTest.cpp中。

当我在Linux命令提示符下键入make时,我会得到以下错误:

In file included from /usr/include/opc/opc.h:36:0, from LibOPCTest.cpp:1:
/usr/include/opc/config.h:37:30: fatal error: libxml/xmlstring.h: no such file or directory.

我不应该让makefile中带有LIB和INC定义的libxml指向libxml吗?我不认为我应该向opc.h添加任何内容,包括构建它,因为它是一个固定的库。

我看了这个makefile的例子,我想我已经拥有了我需要的一切(可能不是,因为它还没有构建)。

我知道这是一个基本问题,但希望有人能给我一个好的建议。谢谢你提前表现得很好!!

我们决定暂停libOPC的Linux版本,因为没有一个好的64位版本,它需要大量的工作。