Неопределенный символ для архитектуры x86_64 при компиляции программы на C при использовании клиентской библиотеки aerospike

Я новичок в аэроспайке и просто привыкаю к ​​нему. Теперь я установил клиентскую библиотеку C, как они описали в своей документации.

Вот мой код Test.c

И это ошибка, которую я получаю при компиляции. ошибка

Здесь я предполагаю, что компоновщик каким-то образом не может подключить функцию клиента aerospike к моему коду. Я не могу понять, как это решить!

2 ответа

Вот мои заметки об использовании C Client внутри виртуальной машины Ubuntu, сервер Aerospike также установлен внутри этой виртуальной машины и работает.

Using eclipse to develp C code:
sudo apt-get install eclipse eclipse-cdt g++
Note: C Client does not support AsuRM processors.
I am working inside a Ubuntu 16.04 VM.

$lsb_release -a   ⇒ shows my ubuntu version 

pgupta@ubuntu:/var/log/aerospike$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:    xenial

Required library:

$cd ~
$sudo apt-get install libssl-dev

Download C Client and install for Ubuntu 16.x:  http://www.aerospike.com/docs/client/c/install

It was downloaded in my ~/Downloads directory.
$cd Downloads/
$ls
$tar xvf aerospike-client-c-4.1.1.ubuntu16.04.x86_64.tgz
$cd aerospike-client-c-4.1.1.ubuntu16.04.x86_64/
$ sudo dpkg -i aerospike-client-c-devel-4.1.1.ubuntu16.04.x86_64.deb
$ cd examples
$ make
$cd basic_examples/
$cd put
$cd target/
$ sudo service aerospike start   (I have a server running in my ubuntu 16 VM)
$./example

Output shows I was able to read and write records to the server.

Я не работал с aerospike, но я бы посоветовал вам начать с одного из их примеров, который включает файл make, который предоставит информацию, необходимую для связывания необходимых библиотек. Ваш шаг сборки не выглядит так, как будто он включает библиотеки аэроспайков, поэтому компоновщик не разрешает символы.

Другие вопросы по тегам