Closed Alababdiy closed 3 years ago
IIRC yum list
lists all packages. Use yum list installed
to find the packages you installed. Install postgresql-devel
and postgresql-libs
and run CMake again. You should see it finding PostgreSQL (or a shortened message).
-- Found PostgreSQL: /usr/lib/libpq.so (found version "13.3")
-- pg inc: /usr/include/usr/include/postgresql/server
-- Found pg: /usr/lib/libpq.so
-- libpq inc path:/usr/include/usr/include/postgresql/server
-- libpq lib:/usr/lib/libpq.so
Then rebuild drogon.
IIRC
yum list
lists all packages. Useyum list installed
to find the packages you installed. Installpostgresql-devel
andpostgresql-libs
and run CMake again. You should see it finding PostgreSQL (or a shortened message).-- Found PostgreSQL: /usr/lib/libpq.so (found version "13.3") -- pg inc: /usr/include/usr/include/postgresql/server -- Found pg: /usr/lib/libpq.so -- libpq inc path:/usr/include/usr/include/postgresql/server -- libpq lib:/usr/lib/libpq.so
Then rebuild drogon.
yum list installed | grep postgresql
postgresql.x86_64 9.2.24-7.el7_9 @updates
postgresql-devel.x86_64 9.2.24-7.el7_9 @updates
postgresql-libs.x86_64 9.2.24-7.el7_9 @updates
postgresql-server.x86_64 9.2.24-7.el7_9 @updates
also i add (to check) :-
find_package(PostgreSQL REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE PostgreSQL::PostgreSQL)
cmake ..
-- jsoncpp verson:1.9.4
-- Found UUID: /opt/vcpkg/installed/x64-linux/lib/libuuid.a
-- use c++17
-- Found the following ICU libraries:
-- uc (required)
-- i18n (required)
-- Configuring done
-- Generating done
-- Build files have been written to: /root/webhook.ratina/build
Still same error
Are you using a pre-built drogon or are you building drogon drom source?
Seems that the postgresql-devel package was not installed when building drogon library.
After delete build folder then : - [root@localhost build]# cmake -D CMAKE_PREFIX_PATH="/opt/vcpkg/installed/x64-linux" -D CMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake ..
-- Found Jsoncpp: /opt/vcpkg/installed/x64-linux/include
-- jsoncpp verson:1.9.4
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found OpenSSL: /opt/vcpkg/installed/x64-linux/lib/libcrypto.a (found version "1.1.1k")
-- Found c-ares: /opt/vcpkg/installed/x64-linux/include
-- Found UUID: /opt/vcpkg/installed/x64-linux/lib/libuuid.a
-- Found ZLIB: /opt/vcpkg/installed/x64-linux/lib/libz.a (found version "1.2.11")
-- Found Brotli: /opt/vcpkg/installed/x64-linux/lib/libbrotlidec-static.a
-- use c++17
-- Found CURL: /opt/vcpkg/installed/x64-linux/share/curl/CURLConfig.cmake (found version "7.74.0-DEV")
-- Found nlohmann_json: /opt/vcpkg/installed/x64-linux/share/nlohmann_json/nlohmann_jsonConfig.cmake (found version "3.9.1")
-- Found the following ICU libraries:
-- uc (required)
-- i18n (required)
-- Found ICU: /opt/vcpkg/installed/x64-linux/include (found suitable version "69.1", minimum required is "61.0")
-- Found PostgreSQL: /opt/vcpkg/installed/x64-linux/lib/libpq.a (found version "12.2")
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
CMAKE_TOOLCHAIN_FILE
-- Build files have been written to: /root/webhook.ratina/build
[root@localhost build]# make
[ 25%] Building CXX object CMakeFiles/webhook.ratina.dir/main.cc.o
[ 50%] Building CXX object CMakeFiles/webhook.ratina.dir/controllers/Sender.cc.o
[ 75%] Building CXX object CMakeFiles/webhook.ratina.dir/controllers/messenger_receiver.cc.o
[100%] Linking CXX executable webhook.ratina
[100%] Built target webhook.ratina
[root@localhost build]# ./webhook.ratina
http://localhost:8000
20210801 08:12:35.940156 UTC 48539 FATAL PostgreSQL is not supported! - DbClient.cc:41
same error :(
Seems that the postgresql-devel package was not installed when building drogon library.
did you install drogon with vcpkg install drogon
?
try to run drogon_ctl -v to check if the postgresql dependency is linked.
New thing tools folder not exist :( alias drogon_ctl="/opt/vcpkg/packages/drogon_x64-linux/tools/drogon/drogon_ctl"
[root@localhost build]# ls /opt/vcpkg/packages/drogon_x64-linux/
BUILD_INFO CONTROL debug include lib share
[root@localhost build]# drogon_ctl
bash: /opt/vcpkg/packages/drogon_x64-linux/tools/drogon/drogon_ctl: No such file or directory
after this PR, ctl, orm, etc. are features of drogon package, you should reinstall drogon with features like:
./vcpkg install "drogon[ctl]" --recurse
And if you use vcpkg, you don't need to use yum to install dependencies.
still same problem after PR
(base) [root@localhost vcpkg]# gh pr checkout 18711
remote: Enumerating objects: 73, done.
remote: Counting objects: 100% (50/50), done.
remote: Total 73 (delta 50), reused 50 (delta 50), pack-reused 23
Unpacking objects: 100% (73/73), 39.40 KiB | 720.00 KiB/s, done.
From https://github.com/Microsoft/vcpkg
* [new ref] refs/pull/18711/head -> Greisby/master
Switched to branch 'Greisby/master'
(base) [root@localhost vcpkg]# cd ~/webhook.ratina/build/
(base) [root@localhost build]# cmake ..
-- jsoncpp verson:1.9.4
-- Found UUID: /opt/vcpkg/installed/x64-linux/lib/libuuid.a
-- use c++17
-- Found the following ICU libraries:
-- uc (required)
-- i18n (required)
-- Configuring done
-- Generating done
-- Build files have been written to: /root/webhook.ratina/build
(base) [root@localhost build]# drogon_
bash: drogon_: command not found
(base) [root@localhost build]# drogon_crl -v
bash: drogon_crl: command not found
(base) [root@localhost build]# exit
exit
[root@localhost ~]# drogon_crl -v
-bash: drogon_crl: command not found
[root@localhost ~]# vcpkg remove drogon
The following packages will be removed:
drogon:x64-linux
Removing package drogon:x64-linux...
Removing package drogon:x64-linux... done
[root@localhost ~]# vcpkg remove drogon[ctl]
The following packages are not installed, so not removed:
drogon:x64-linux
Package drogon:x64-linux is not installed
[root@localhost ~]# vcpkg install "drogon[ctl]" --recurse
Computing installation plan...
The following packages will be built and installed:
drogon[core,ctl]:x64-linux -> 1.7.1#1
Detecting compiler hash for triplet x64-linux...
Could not locate cached archive: /root/.cache/vcpkg/archives/4e/4ec322822bc9561903a12fbde9953fdb12200c456fbf17585c381eefb261d5a8.zip
Starting package 1/1: drogon:x64-linux
Building package drogon[core,ctl]:x64-linux...
-- Using /opt/vcpkg/downloads/an-tao-drogon-v1.7.1.tar.gz
-- Cleaning sources at /opt/vcpkg/buildtrees/drogon/src/v1.7.1-f3b2a1a3e7.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /opt/vcpkg/downloads/an-tao-drogon-v1.7.1.tar.gz
-- Applying patch vcpkg.patch
-- Applying patch resolv.patch
-- Applying patch drogon_config.patch
-- Applying patch static-brotli.patch
-- Using source at /opt/vcpkg/buildtrees/drogon/src/v1.7.1-f3b2a1a3e7.clean
-- Configuring x64-linux-dbg
-- Configuring x64-linux-rel
CMake Warning at scripts/cmake/vcpkg_configure_cmake.cmake:405 (message):
The following variables are not used in CMakeLists.txt:
CMAKE_DISABLE_FIND_PACKAGE_Boost
Please recheck them and remove the unnecessary options from the
`vcpkg_configure_cmake` call.
If these options should still be passed for whatever reason, please use the
`MAYBE_UNUSED_VARIABLES` argument.
Call Stack (most recent call first):
ports/drogon/portfile.cmake:26 (vcpkg_configure_cmake)
scripts/ports.cmake:141 (include)
-- Building x64-linux-dbg
-- Building x64-linux-rel
copying tools
-- Installing: /opt/vcpkg/packages/drogon_x64-linux/share/drogon/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: /root/.cache/vcpkg/archives/4e/4ec322822bc9561903a12fbde9953fdb12200c456fbf17585c381eefb261d5a8.zip
Building package drogon[core,ctl]:x64-linux... done
Installing package drogon[core,ctl]:x64-linux...
Installing package drogon[core,ctl]:x64-linux... done
Elapsed time for package drogon:x64-linux: 1.942 min
Total elapsed time: 1.949 min
The package drogon:x64-linux provides CMake targets:
find_package(Drogon CONFIG REQUIRED)
# Note: 5 target(s) were omitted.
target_link_libraries(main PRIVATE pg_lib UUID_lib coz::coz MySQL_lib)
[root@localhost ~]# /opt/vcpkg/packages/drogon_x64-linux/tools/drogon/drogon_ctl -v
_
__| |_ __ ___ __ _ ___ _ __
/ _` | '__/ _ \ / _` |/ _ \| '_ \
| (_| | | | (_) | (_| | (_) | | | |
\__,_|_| \___/ \__, |\___/|_| |_|
|___/
A utility for drogon
Version: 1.7.1
Git commit: 3fcf4a3b0c4dc249c4df90f089c96a9d4eea6921
Compilation:
Compiler: /opt/rh/devtoolset-8/root/usr/bin/c++
Compiler ID: GNU
Compilation flags: -O3 -DNDEBUG -std=c++17 -I/opt/vcpkg/installed/x64-linux/include -I/opt/vcpkg/packages/drogon_x64-linux/include
Libraries:
postgresql: no (batch mode: no)
mariadb: no
sqlite3: no
openssl: yes
brotli: yes
boost: no
hiredis: no
c-ares: yes
[root@localhost webhook.ratina]# mkdir build
[root@localhost webhook.ratina]# cd build/
[root@localhost build]# cmake ..
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found OpenSSL: /opt/vcpkg/installed/x64-linux/lib/libcrypto.a (found version "1.1.1k")
-- Found c-ares: /opt/vcpkg/installed/x64-linux/include
-- Found UUID: /opt/vcpkg/installed/x64-linux/lib/libuuid.a
-- Found ZLIB: /opt/vcpkg/installed/x64-linux/lib/libz.a (found version "1.2.11")
-- Found Brotli: /opt/vcpkg/installed/x64-linux/lib/libbrotlidec-static.a
-- use c++17
-- Found CURL: /opt/vcpkg/installed/x64-linux/share/curl/CURLConfig.cmake (found version "7.74.0-DEV")
-- Found nlohmann_json: /opt/vcpkg/installed/x64-linux/share/nlohmann_json/nlohmann_jsonConfig.cmake (found version "3.9.1")
-- Found the following ICU libraries:
-- uc (required)
-- i18n (required)
-- Found ICU: /opt/vcpkg/installed/x64-linux/include (found suitable version "69.1", minimum required is "61.0")
-- Configuring done
-- Generating done
-- Build files have been written
``` to: /root/webhook.ratina/build
> after this [PR](https://github.com/microsoft/vcpkg/pull/18711), ctl, orm, etc. are features of drogon package, you should reinstall drogon with features like:
>
> ```shell
> ./vcpkg install "drogon[ctl]" --recurse
> ```
>
> And if you use vcpkg, you don't need to use yum to install dependencies.
./vcpkg install "drogon[ctl,postgres]"
./vcpkg install "drogon[ctl,postgres]"
;( [root@localhost build]# make
/opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `internal_cancel': fe-connect.c:(.text+0xa7e): undefined reference to `strlcpy' fe-connect.c:(.text+0xaa1): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0xaee): undefined reference to `strlcpy' fe-connect.c:(.text+0xb02): undefined reference to `strlcpy' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `default_threadlock': fe-connect.c:(.text+0xb54): undefined reference to `pg_fprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `connectFailureMessage': fe-connect.c:(.text+0xe6f): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0xecd): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0xf32): undefined reference to `pg_getnameinfo_all' fe-connect.c:(.text+0xf44): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0xfa8): undefined reference to `inet_net_ntop' fe-connect.c:(.text+0xfe0): undefined reference to `inet_net_ntop' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `closePGconn': fe-connect.c:(.text+0x10f9): undefined reference to `pg_freeaddrinfo_all' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQcancel': fe-connect.c:(.text+0x1312): undefined reference to `strlcpy' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQrequestCancel': fe-connect.c:(.text+0x13a0): undefined reference to `strlcpy' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQconnectPoll': fe-connect.c:(.text+0x151f): undefined reference to `pg_freeaddrinfo_all' fe-connect.c:(.text+0x15e9): undefined reference to `pg_snprintf' fe-connect.c:(.text+0x164c): undefined reference to `pg_snprintf' fe-connect.c:(.text+0x1807): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x185c): undefined reference to `pg_getaddrinfo_all' fe-connect.c:(.text+0x1aa3): undefined reference to `pg_set_noblock' fe-connect.c:(.text+0x1aca): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2067): undefined reference to `pg_getaddrinfo_all' fe-connect.c:(.text+0x2352): undefined reference to `pg_getaddrinfo_all' fe-connect.c:(.text+0x2584): undefined reference to `pg_freeaddrinfo_all' fe-connect.c:(.text+0x27db): undefined reference to `inet_net_ntop' fe-connect.c:(.text+0x2913): undefined reference to `inet_net_ntop' fe-connect.c:(.text+0x29a2): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2a18): undefined reference to `getpeereid' fe-connect.c:(.text+0x2a3e): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2a8b): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2b71): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2c1c): undefined reference to `pqGetpwuid' fe-connect.c:(.text+0x2ca5): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2d82): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2ed2): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2fa0): undefined reference to `pg_strerror_r' fe-connect.c:(.text+0x2fd7): undefined reference to `pg_strerror_r' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o):fe-connect.c:(.text+0x3036): more undefined references to `pg_strerror_r' follow /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQresetStart': fe-connect.c:(.text+0x35b9): undefined reference to `pg_link_canary_is_frontend' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQreset': fe-connect.c:(.text+0x36a1): undefined reference to `pg_link_canary_is_frontend' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQsetClientEncoding': fe-connect.c:(.text+0x3e3e): undefined reference to `pg_sprintf' fe-connect.c:(.text+0x3e80): undefined reference to `pg_get_encoding_from_locale' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `pqGetHomeDirectory': fe-connect.c:(.text+0x4010): undefined reference to `pqGetpwuid' fe-connect.c:(.text+0x402a): undefined reference to `strlcpy' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `parseServiceInfo': fe-connect.c:(.text+0x40cc): undefined reference to `strlcpy' fe-connect.c:(.text+0x412c): undefined reference to `pg_snprintf' fe-connect.c:(.text+0x41f6): undefined reference to `pg_snprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `connectOptions2': fe-connect.c:(.text+0x5dfc): undefined reference to `pg_snprintf' fe-connect.c:(.text+0x6129): undefined reference to `pg_fprintf' fe-connect.c:(.text+0x6206): undefined reference to `pg_get_encoding_from_locale' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQconnectStartParams': fe-connect.c:(.text+0x6787): undefined reference to `pg_link_canary_is_frontend' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQconnectStart': fe-connect.c:(.text+0x6ce4): undefined reference to `pg_link_canary_is_frontend' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `PQsetdbLogin': fe-connect.c:(.text+0x7503): undefined reference to `pg_link_canary_is_frontend' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-connect.o): In function `defaultNoticeProcessor': fe-connect.c:(.text+0x17): undefined reference to `pg_fprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-exec.o): In function `pqInternalNotice': fe-exec.c:(.text+0xf7d): undefined reference to `pg_vsnprintf' fe-exec.c:(.text+0x1061): undefined reference to `pg_sprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-exec.o): In function `pqSaveParameterStatus': fe-exec.c:(.text+0x1591): undefined reference to `pg_fprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-exec.o): In function `PQfnumber': fe-exec.c:(.text+0x4679): undefined reference to `pg_tolower' fe-exec.c:(.text+0x4738): undefined reference to `pg_tolower' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-misc.o): In function `pqSocketCheck': fe-misc.c:(.text+0xc9): undefined reference to `pg_strerror_r' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-misc.o): In function `pqGetc': fe-misc.c:(.text+0x43e): undefined reference to `pg_fprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-misc.o): In function `pqGets': fe-misc.c:(.text+0x50d): undefined reference to `pg_fprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-misc.o): In function `pqGets_append': fe-misc.c:(.text+0x5c3): undefined reference to `pg_fprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-misc.o): In function `pqGetnchar': fe-misc.c:(.text+0x63e): undefined reference to `pg_fprintf' fe-misc.c:(.text+0x67a): undefined reference to `pg_fprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-misc.o):fe-misc.c:(.text+0x6d0): more undefined references to `pg_fprintf' follow /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-protocol2.o): In function `pqSetenvPoll': fe-protocol2.c:(.text+0x88f): undefined reference to `pg_strcasecmp' fe-protocol2.c:(.text+0x8b3): undefined reference to `pg_sprintf' fe-protocol2.c:(.text+0x934): undefined reference to `pg_strcasecmp' fe-protocol2.c:(.text+0x94b): undefined reference to `pg_sprintf' fe-protocol2.c:(.text+0xa98): undefined reference to `pg_sprintf' fe-protocol2.c:(.text+0xab8): undefined reference to `pg_sprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-protocol2.o): In function `pqParseInput2': fe-protocol2.c:(.text+0xf3c): undefined reference to `strlcpy' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-protocol3.o): In function `pqGetErrorNotice3': fe-protocol3.c:(.text+0xe2f): undefined reference to `strlcpy' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-protocol3.o): In function `pqParseInput3': fe-protocol3.c:(.text+0x14a8): undefined reference to `strlcpy' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-protocol3.o): In function `pqBuildStartupPacket3': fe-protocol3.c:(.text+0x2d58): undefined reference to `pg_strcasecmp' fe-protocol3.c:(.text+0x2ed8): undefined reference to `pg_strcasecmp' /opt/vcpkg/installed/x64-linux/lib/libpq.a(pqexpbuffer.o): In function `printfPQExpBuffer': pqexpbuffer.c:(.text+0x2bc): undefined reference to `pg_vsnprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(pqexpbuffer.o): In function `appendPQExpBuffer': pqexpbuffer.c:(.text+0x42c): undefined reference to `pg_vsnprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure.o): In function `pqsecure_raw_read': fe-secure.c:(.text+0xec): undefined reference to `pg_strerror_r' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure.o): In function `pqsecure_raw_write': fe-secure.c:(.text+0x468): undefined reference to `pg_strerror_r' /opt/vcpkg/installed/x64-linux/lib/libpq.a(encnames.o): In function `pg_char_to_encoding': encnames.c:(.text+0x12c): undefined reference to `pg_fprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure-openssl.o): In function `SSLerrmessage': fe-secure-openssl.c:(.text+0x49): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x72): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x95): undefined reference to `pg_snprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure-openssl.o): In function `initialize_SSL': fe-secure-openssl.c:(.text+0x3f9): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x499): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x549): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x5b9): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x6a9): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x6de): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x734): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x7dd): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x89e): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x96f): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x9a2): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x9c2): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x9e2): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xb71): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0xb97): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xbb5): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xc17): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xc29): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0xcac): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xcf9): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0xd6c): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xe0f): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0xe63): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xe83): undefined reference to `pg_strerror_r' fe-secure-openssl.c:(.text+0xeeb): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0xf62): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xf7d): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xf98): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xfb3): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0xff3): undefined reference to `pg_snprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure-openssl.o):fe-secure-openssl.c:(.text+0x10ce): more undefined references to `pg_snprintf' follow /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure-openssl.o): In function `pgtls_read': fe-secure-openssl.c:(.text+0x1297): undefined reference to `pg_strerror_r' fe-secure-openssl.c:(.text+0x1360): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x1412): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x1462): undefined reference to `pg_snprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure-openssl.o): In function `pgtls_write': fe-secure-openssl.c:(.text+0x15d2): undefined reference to `pg_strerror_r' fe-secure-openssl.c:(.text+0x1664): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x1712): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x1765): undefined reference to `pg_snprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure-openssl.o): In function `pgtls_open_client': fe-secure-openssl.c:(.text+0x1ca0): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x1d8c): undefined reference to `strlcpy' fe-secure-openssl.c:(.text+0x1df0): undefined reference to `pg_strerror_r' fe-secure-openssl.c:(.text+0x1e26): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x1e62): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x1e82): undefined reference to `pg_snprintf' fe-secure-openssl.c:(.text+0x1ec1): undefined reference to `pg_snprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure-openssl.o): In function `PQsslAttribute': fe-secure-openssl.c:(.text+0x200f): undefined reference to `pg_snprintf' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-secure-common.o): In function `pq_verify_peer_name_matches_certificate_name': fe-secure-common.c:(.text+0xc8): undefined reference to `pg_strcasecmp' fe-secure-common.c:(.text+0x163): undefined reference to `pg_strcasecmp' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-auth.o): In function `pg_fe_sendauth': fe-auth.c:(.text+0x4ba): undefined reference to `pg_md5_encrypt' fe-auth.c:(.text+0x4d6): undefined reference to `pg_md5_encrypt' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-auth.o): In function `pg_fe_getauthname': fe-auth.c:(.text+0x778): undefined reference to `pqGetpwuid' fe-auth.c:(.text+0x7e4): undefined reference to `pg_strerror_r' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-auth.o): In function `PQencryptPassword': fe-auth.c:(.text+0x861): undefined reference to `pg_md5_encrypt' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-auth.o): In function `PQencryptPasswordConn': fe-auth.c:(.text+0x979): undefined reference to `pg_md5_encrypt' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-auth-scram.o): In function `build_client_final_message': fe-auth-scram.c:(.text+0xbe): undefined reference to `scram_SaltedPassword' fe-auth-scram.c:(.text+0xdb): undefined reference to `scram_ClientKey' fe-auth-scram.c:(.text+0xf0): undefined reference to `scram_H' fe-auth-scram.c:(.text+0x100): undefined reference to `scram_HMAC_init' fe-auth-scram.c:(.text+0x119): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0x12d): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0x146): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0x15a): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0x16f): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0x17f): undefined reference to `scram_HMAC_final' fe-auth-scram.c:(.text+0x1c7): undefined reference to `pg_b64_enc_len' fe-auth-scram.c:(.text+0x1f6): undefined reference to `pg_b64_encode' fe-auth-scram.c:(.text+0x329): undefined reference to `pg_b64_enc_len' fe-auth-scram.c:(.text+0x355): undefined reference to `pg_b64_encode' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-auth-scram.o): In function `pg_fe_scram_init': fe-auth-scram.c:(.text+0x41e): undefined reference to `pg_saslprep' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-auth-scram.o): In function `pg_fe_scram_exchange': fe-auth-scram.c:(.text+0x570): undefined reference to `pg_strong_random' fe-auth-scram.c:(.text+0x582): undefined reference to `pg_b64_enc_len' fe-auth-scram.c:(.text+0x5aa): undefined reference to `pg_b64_encode' fe-auth-scram.c:(.text+0x7a9): undefined reference to `pg_b64_dec_len' fe-auth-scram.c:(.text+0x7d2): undefined reference to `pg_b64_decode' fe-auth-scram.c:(.text+0xa23): undefined reference to `pg_b64_dec_len' fe-auth-scram.c:(.text+0xa63): undefined reference to `pg_b64_decode' fe-auth-scram.c:(.text+0xb85): undefined reference to `scram_ServerKey' fe-auth-scram.c:(.text+0xb99): undefined reference to `scram_HMAC_init' fe-auth-scram.c:(.text+0xbb7): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0xbcb): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0xbe9): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0xbfd): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0xc1b): undefined reference to `scram_HMAC_update' fe-auth-scram.c:(.text+0xc2f): undefined reference to `scram_HMAC_final' /opt/vcpkg/installed/x64-linux/lib/libpq.a(fe-auth-scram.o): In function `pg_fe_scram_build_verifier': fe-auth-scram.c:(.text+0xecf): undefined reference to `pg_saslprep' fe-auth-scram.c:(.text+0xeee): undefined reference to `pg_strong_random' fe-auth-scram.c:(.text+0xf21): undefined reference to `scram_build_verifier' collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/webhook.ratina.dir/build.make:148: webhook.ratina] Error 1 make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/webhook.ratina.dir/all] Error 2 make: *** [Makefile:91: all] Error 2
It seems something wrong with the libpq in vcpkg, I usually directly install drogon without vcpkg on linux.
New Error here when try install drogon:
git clone https://github.com/an-tao/drogon cd drogon git submodule update --init mkdir build cd build cmake -D JSONCPP_LIBRARIES="/opt/jsoncpp/libjsoncpp.a" ..
make && sudo make install
[ 50%] Building CXX object CMakeFiles/drogon.dir/orm_lib/src/DbClientManager.cc.o
[ 51%] Linking CXX static library libdrogon.a
[ 51%] Built target drogon
[ 51%] Building CXX object examples/CMakeFiles/client.dir/client_example/main.cc.o
make[2]: *** No rule to make target '/opt/jsoncpp/libjsoncpp.a', needed by 'examples/client'. Stop.
make[1]: *** [CMakeFiles/Makefile2:287: examples/CMakeFiles/client.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
install libjsoncpp to your system folder, and drogon will find it by itself.
You are right, vcpkg packages have i issues with CentOS 7 . I install package as third party and use add_subdirectory in CMake then anything working fine .. Thanks an-tao 💯
this error show up:
[root@localhost build]# yum list | grep postgresql