For some reason, the file is missing on the system.
As you're using apt-get
, the system is dpkg
based, presumably Debian or it's derivative. You can try the Ubuntu's package search to get which package contains a file with name ending in libpq-fe.h
.
I found the package is libpq-dev
and file's absolute path is /usr/include/postgresql/libpq-fe.h
.
FWIW, on a dpkg
based system, you can check which package gives a file if you know the file's absolute path:
% dpkg -S /usr/include/postgresql/libpq-fe.h
libpq-dev: /usr/include/postgresql/libpq-fe.h
Also, unlike find
, locate
keeps a cache of found files (mlocate.db
) that is created everyday via cron
; so if the file happens to be removed after the last run, you can run locate libfq-fe.h
to get the absolute path to the file without needing to check the Ubuntu package search online.
So the package is libpq-dev
. Now, reinstalling it will get everything to the default state i.e. all relevant files will be copied to the right places. As it is only a library package, no user/system level configurations will be overridden (and dpkg
will prompt you for action for any package that does that).
To reinstall the package:
sudo apt-get install --reinstall libpq-dev
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…