Проблемы с компиляцией соединителей C++ в Visual Studio Code, Mac M1C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблемы с компиляцией соединителей C++ в Visual Studio Code, Mac M1

Сообщение Anonymous »

Я пытаюсь использовать коннекторы C++ для MySQL и PostgreSQL. Сначала я использовал официальный коннектор MySQL C++, а для Postgres — libpqxx. Дело в том, что у меня всегда одни и те же ошибки. Я использую Mac M1, и скопированные ошибки получены из соединителя MySQL.
При использовании отладчика кода Visual Studio (с использованием clang++) результат:

Код: Выделить всё

/usr/bin/clang++ -std=gnu++14 -fcolor-diagnostics -fansi-escape-codes -g /Users/kakolu/VisualStudioCode/my.cpp -o /Users/kakolu/VisualStudioCode/my
Undefined symbols for architecture arm64:
"check(std::__1::basic_string const&)", referenced from:
check_lib() in my-6afd68.o
"check(std::__1::map const&)", referenced from:
check_lib() in my-6afd68.o
"__get_driver_instance_by_name", referenced from:
get_driver_instance_by_name(char const*) in my-6afd68.o
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
С другой стороны, при использовании команды clang++ my.cpp -o my результатом является куча ошибок. Я вставляю некоторые из них, но не все:

Код: Выделить всё

In file included from my.cpp:2:
In file included from /usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/connection.h:41:
In file included from /usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/variant.h:44:
/usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/exception.h:91:11: error: exception specification of overriding function is more lax than base version
91 |   virtual ~SQLException() noexcept {};
|           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stdexcept:115:3: note: overridden virtual function is here
115 |   ~runtime_error() _NOEXCEPT override;
|   ^
In file included from my.cpp:2:
In file included from /usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/connection.h:41:
In file included from /usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/variant.h:44:
/usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/exception.h:91:26: error: expected ';' at end of declaration list
91 |   virtual ~SQLException() noexcept {};
|                          ^
|                          ;
/usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/exception.h:94:3: error: expected ';' at end of declaration list
94 |   MEMORY_ALLOC_OPERATORS(SQLException)
|   ^
/usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/exception.h:46:37: note: expanded from macro 'MEMORY_ALLOC_OPERATORS'
46 |   void* operator new(size_t, void*) noexcept; \
|                                     ^
/usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/exception.h:94:3: error: expected ';' at end of declaration list
/usr/local/mysql-connector-c++-9.0.0/include/jdbc/cppconn/exception.h:47:53: note: expanded from macro 'MEMORY_ALLOC_OPERATORS'
47 |   void* operator new(size_t, const std::nothrow_t&) noexcept; \
Что я делаю не так? С библиотекой libpqxx очень похоже. Любые советы или рекомендации приветствуются. Заранее спасибо!
Код, который я использую, указан на официальной веб-странице:

Код: Выделить всё

#include "mysql_connection.h"

#include 
#include 
#include 
#include 

using namespace std;

int main(void)
{
cout createStatement();
res = stmt->executeQuery("SELECT 'Hello World!' AS _message");
while (res->next()) {
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79219254/trouble-compiling-c-connectors-in-visual-studio-code-mac-m1[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»