Как использовать 'MySQL Capi' в программе C? - PullRequest
0 голосов
/ 12 января 2019

Я разрабатываю простую программу на c с mysql-capi в Xcode. Я уже скопировал все include files и libmysqlclient.a в Xcode. Но когда я его компилирую, Xcode показывает мне много ошибок

  "std::terminate()", referenced from:
      ___clang_call_terminate in libmysqlclient.a(my_default.cc.o)
      ___clang_call_terminate in libmysqlclient.a(ssl.cpp.o)
      ___clang_call_terminate in libmysqlclient.a(yassl_int.cpp.o)
      ___clang_call_terminate in libmysqlclient.a(yassl_imp.cpp.o)
      ___clang_call_terminate in libmysqlclient.a(crypto_wrapper.cpp.o)
      ___clang_call_terminate in libmysqlclient.a(cert_wrapper.cpp.o)
      ___clang_call_terminate in libmysqlclient.a(handshake.cpp.o)
      ...
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for yaSSL::virtual_base in libmysqlclient.a(yassl_imp.cpp.o)
      typeinfo for yaSSL::virtual_base in libmysqlclient.a(crypto_wrapper.cpp.o)
      typeinfo for TaoCrypt::virtual_base in libmysqlclient.a(asn.cpp.o)
      typeinfo for TaoCrypt::virtual_base in libmysqlclient.a(hash.cpp.o)
      typeinfo for TaoCrypt::virtual_base in libmysqlclient.a(aes.cpp.o)
      typeinfo for TaoCrypt::virtual_base in libmysqlclient.a(md2.cpp.o)
      typeinfo for TaoCrypt::virtual_base in libmysqlclient.a(des.cpp.o)
      ...

Но если я изменю main.c на main.cpp, он будет работать нормально. Я хотел бы использовать 'c', а не 'cxx'.

Вот код в main.c.

#include <stdio.h>
#include "include/mysql.h"

int main(int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!:%s\n",mysql_get_client_info());
    return 0;
}

Как это исправить?

Спасибо за ваши советы!

...