libpq-fe.h:没有那个文件或目录(Ubuntu 20)

问题描述 投票:0回答:1

在 Ubuntu 20.04.4 LTS 中编译,g++ 返回

libpq-fe.h is not found

系统已经安装好了(sudo apt-get install libpq-dev)在

/usr/include/postgresql/libpq-fe.h

我尝试使用选项 -I/usr/include/postgresql 设置编译路径,但它仍然声称缺少 libpq-fe.h

ubuntu makefile g++ libpq
1个回答
0
投票

如您所见,我必须手动插入 -I/usr/include/postgresql-L/usr/lib/x86_64-linux-gnu 以使 -lpq (libpq) 在 Ubuntu 中与 g++ 一起工作:

TARGET = prog
LIBS = -lm -lcrypto -lpq -lpthread
CC = g++
CFLAGS = -g -Wall
ODIR = ../src

.PHONY: default all clean

default: $(TARGET)
all: default

OBJS = $(patsubst %.cpp, %.o, $(wildcard ../src/*.cpp))
HEADERS = $(wildcard ../src/*.h)

all: $(TARGET)
$(TARGET): $(OBJS)
        $(CC) -L/usr/lib/x86_64-linux-gnu -o $@ $^ $(LIBS)
$(ODIR)/%.o: $(ODIR)/%.cpp
        $(CC) $(CFLAGS) -I/usr/include/postgresql -c $< -o $@

clean:
        -rm -f ../src/*.o
        -rm -f $(TARGET)

如果 libpq.so.5 已经在 /usr/lib/x86_64-linux-gnu 中,出现“cannot find -lpq”:

sudo ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 /usr/lib/x86_64-linux-gnu/libpq.so
© www.soinside.com 2019 - 2024. All rights reserved.