Сборка mariadb-connector-c на OSX - PullRequest
       17

Сборка mariadb-connector-c на OSX

0 голосов
/ 27 октября 2018

Я пытаюсь создать соединитель C для MariaDB в последней версии OSX, но, похоже, он не работает с ошибкой, связанной с SSL.Я установил SSL с помощью Macports (/ opt / local / lib / openssl) и добавил включение, указывающее на него:

find_package(OpenSSL REQUIRED)
target_include_directories(tests PRIVATE ${OPENSSL_INCLUDE_DIR})

, но при его создании возвращается та же ошибка:

~/chi/databaseclient/cpp/ninja/mariadb-connector-c-src
⟩ ninja
[81/115] Building C object libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/inflate.c.o
zlib/inflate.c:1475:61: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
    if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
                                                        ~~~ ^
1 warning generated.
[89/115] Linking C shared library libmariadb/libmariadb.3.dylib
FAILED: libmariadb/libmariadb.3.dylib 
: && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -O2 -g -DNDEBUG -DDBUG_OFF -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -dynamiclib -Wl,-headerpad_max_install_names -compatibility_version 3.0.0 -current_version 3.0.0 -o libmariadb/libmariadb.3.dylib -install_name /Users/ruihpacheco/chi/databaseclient/cpp/ninja/mariadb-connector-c-src/libmariadb/libmariadb.3.dylib libmariadb/CMakeFiles/mariadb_obj.dir/__/plugins/auth/my_auth.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/plugins/auth/old_password.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/plugins/pvio/pvio_socket.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_array.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_charset.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_hash.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_net.c.o libmariadb/CMakeFiles/mariadb_obj.dir/mariadb_charset.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_time.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_default.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_errmsg.c.o libmariadb/CMakeFiles/mariadb_obj.dir/mariadb_lib.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_list.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_pvio.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_tls.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_alloc.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_compress.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_init.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_password.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_ll2str.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_sha1.c.o libmariadb/CMakeFiles/mariadb_obj.dir/mariadb_stmt.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_loaddata.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_stmt_codec.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_string.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_dtoa.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_client_plugin.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_io.c.o libmariadb/CMakeFiles/mariadb_obj.dir/secure/openssl.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/adler32.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/compress.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/crc32.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/deflate.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/gzclose.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/gzlib.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/gzread.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/gzwrite.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/infback.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/inffast.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/inflate.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/inftrees.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/trees.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/uncompr.c.o libmariadb/CMakeFiles/mariadb_obj.dir/__/zlib/zutil.c.o libmariadb/CMakeFiles/mariadb_obj.dir/mariadb_dyncol.c.o libmariadb/CMakeFiles/mariadb_obj.dir/mariadb_async.c.o libmariadb/CMakeFiles/mariadb_obj.dir/ma_context.c.o  /usr/lib/libiconv.dylib /usr/lib/libssl.dylib /usr/lib/libcrypto.dylib && :
Undefined symbols for architecture x86_64:
  "_X509_check_host", referenced from:
      _ma_tls_verify_server_cert in openssl.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[91/115] Building C object unittest/libmariadb/CMakeFiles/ps_bugs.dir/ps_bugs.c.o
ninja: build stopped: subcommand failed.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

По какой-то причине CMake использует заголовочные файлы Macports, но не системные библиотеки.

0 голосов
/ 30 ноября 2018

MariaDB Connector / C работает корректно со всеми поддерживаемыми версиями OpenSSL.

Ошибка «Неопределенные символы для архитектуры x86_64« _X509_check_host »» указывает, что вы используете более старую версию OpenSSL, которая больше не поддерживается. X509_check_host был представлен в OpenSSL 1.0.2.

Пожалуйста, обновите вашу версию OpenSSL до версии 1.0.2 или новее. Смотри также https://www.openssl.org/policies/releasestrat.html

...