C ++ Cassandra ошибка сборки

Здравствуйте, у меня есть проблема с созданием моего кода на C ++.
Я установил cassandra на мою Mac OS и все библиотеки, которые мне нужны из datastax.
Но когда я строю свой тестовый проект, я всегда получаю

     Undefined symbols for architecture x86_64:
"_cass_cluster_free", referenced from:
_main in main.cpp.o
"_cass_cluster_new", referenced from:
_main in main.cpp.o
"_cass_cluster_set_contact_points", referenced from:
_main in main.cpp.o
"_cass_error_desc", referenced from:
_main in main.cpp.o
"_cass_future_error_code", referenced from:
_main in main.cpp.o
"_cass_future_free", referenced from:
_main in main.cpp.o
"_cass_session_connect", referenced from:
_main in main.cpp.o
"_cass_session_free", referenced from:
_main in main.cpp.o
"_cass_session_new", referenced from:
_main in main.cpp.o
ld: symbol(s) not found for architecture x86_64

Я знаю, что мне чего-то не хватает в моем CMakelist, но я не знаю точно, что

Вот мой тестовый код:

#include <cassandra.h>
#include <cstdio>

int main() {
/* Setup and connect to cluster */
CassCluster* cluster = cass_cluster_new();
CassSession* session = cass_session_new();

/* Add contact points */
cass_cluster_set_contact_points(cluster, "127.0.0.1");

/* Provide the cluster object as configuration to connect the session */
CassFuture* connect_future = cass_session_connect(session, cluster);

/* This operation will block until the result is ready */
CassError rc = cass_future_error_code(connect_future);

printf("Connect result: %s\n", cass_error_desc(rc));

/* Run queries... */

cass_future_free(connect_future);
cass_session_free(session);
cass_cluster_free(cluster);

return 0;
}

1

Решение

В MacOS каталог установки по умолчанию /usr/local с заголовочными файлами, установленными в include и библиотеки устанавливаются в lib, Чтобы убедиться, что драйвер установлен правильно, вы можете скомпилировать пример кода через clang++

clang++ <source_file_name> -o <executable_output> -lcassandra

Чтобы исправить вашу проблему с CMake (CMakelists.txt) Конфигурация, которую вы должны убедиться, что вы используете target_link_libraries(<target> cassandra) чтобы ваше приложение связывалось с библиотекой драйверов, установленной в вашей системе.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]