pqxx не найден с помощью CMake - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть некоторые связанные с 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 видимым и используемым сейчас?

...