Я пытаюсь использовать коннекторы 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)
Код: Выделить всё
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; \
Код, который я использую, указан на официальной веб-странице:
Код: Выделить всё
#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]
Мобильная версия