У меня есть некоторые связанные с pqxx пакеты на моем Ubuntu 19.04, и this (официальный клиент C ++ PostgreSQL) в моем CMAKE_INSTALL_PREFIX и libpqxx-config.cmake в моем CMAKE_MODULE_PATH (и CMAKE_MODULE_PATH соответственно) ) /lib/cmake.
CMakeLists.txt:
...
find_package(libpqxx REQUIRED)
message(STATUS ${PostgreSQL_INCLUDE_DIRS})
...
add_executable(example main.cpp)
target_link_libraries(example PUBLIC libpqxx)
main. cpp:
...
#include <pqxx/pqxx>
...
... и мой G CC производит следующее:
fatal error: pqxx/pqxx: No such file or directory
#include <pqxx/pqxx>
Теперь $ {PostgreSQL_INCLUDE_DIRS} содержит странный /usr/include/postgresql/usr/include/postgresql/10/server
вместо пути к libpqxx в моем префиксе.
Вывод поиска sudo aptitude "~ npqxx" для уже установленного в системе pqxx-stuff:
p libpqxx-3.1 - C++ library to connect to PostgreSQL
p libpqxx-3.1:i386 - C++ library to connect to PostgreSQL
p libpqxx-3.1-dbg - C++ library to connect to PostgreSQL (debugging symbols)
p libpqxx-3.1-dbg:i386 - C++ library to connect to PostgreSQL (debugging symbols)
p libpqxx-4.0 - C++ library to connect to PostgreSQL
p libpqxx-4.0:i386 - C++ library to connect to PostgreSQL
p libpqxx-dbg - C++ library to connect to PostgreSQL (debugging symbols)
p libpqxx-dbg:i386 - C++ library to connect to PostgreSQL (debugging symbols)
p libpqxx-dev - C++ library to connect to PostgreSQL (development files)
p libpqxx-dev:i386 - C++ library to connect to PostgreSQL (development files)
p libpqxx-doc - C++ library to connect to PostgreSQL (documentation)
p libpqxx3-dev - C++ library to connect to PostgreSQL (development files)
p libpqxx3-dev:i386 - C++ library to connect to PostgreSQL (development files)
p libpqxx3-doc - C++ library to connect to PostgreSQL (documentation)
Как я полагаю, дело в том, что CMake почему-то отдает приоритет внутренним компонентам системы вместо пакета CMake libpqxx. Но похоже, что префикс установлен правильно, и я понятия не имею о причинах такого странного поведения.
Протокол установки libpqxx:
git clone https://github.com/jtv/libpqxx
mkdir build && cd build
cmake -G "Unix Makefiles" .. -DCMAKE_INSTALL_PREFIX=... -DCMAKE_MODULE_PATH=.../lib/cmake
make -j16 && make install
Как я могу сделать libpqxx видимым и используемым сейчас?