Ошибка связи с использованием кода C для подключения к Monetdb - PullRequest
0 голосов
/ 10 сентября 2018

Я попытался скомпилировать код, показанный здесь :

Но я получил ошибку компоновки.
Я попытался упомянуть решение здесь .

Но снова я получил эту ошибку:

gcc main.c -I / usr / include / monetdb -lmapi
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на SHA224_Update'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to mnstr_settimeout '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на socket_rastream'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to mnstr_destroy '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на SHA384_Init'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to MD5_Final '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на RIPEMD160_Init'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to mnstr_errnr '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на RIPEMD160_Update'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to SHA384_Update '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на SHA224_Init'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to SHA256_Init '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на SHA512_Update'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to mnstr_init '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на block_stream'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to mnstr_write '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на SHA384_Final'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to SHA1_Update '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на mnstr_error'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to SHA512_Final '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на SHA256_Final'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to mnstr_flush '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на SHA1_Init'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to SHA224_Final '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на mnstr_read_block'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to mnstr_printf '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на SHA256_Update'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to isa_block_stream '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на mnstr_set_byteorder'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to mnstr_read '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на socket_wastream'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to MD5_Init '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на RIPEMD160_Final'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to close_stream '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на MD5_Update'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to SHA1_Final '
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: неопределенная ссылка на open_wastream'<br> /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to SHA512_Init '
collect2: ошибка: ld вернул 1 статус выхода

Когда я попробовал решение упомянуть здесь :

pkg-config --libs monetdb-mapi and pkg-config --cflags monetdb-mapi

Я получил эту ошибку:

Пакет bzip2 не найден в пути поиска pkg-config.
Возможно, вам следует добавить каталог, содержащий `bzip2.pc ', в переменную окружения PKG_CONFIG_PATH.
Пакет 'bzip2', необходимый для 'monetdb-stream', не найден

, который после поиска обнаружил, что у Debian нет bzip2.pc.
Я установил следующие библиотеки:

sudo apt-get install libmonetdb-client-dev
sudo apt-get install libmonetdb-stream-dev
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install liblzma-dev

Так что любая помощь будет оценена.
Моя версия Ubuntu 18.04

1 Ответ

0 голосов
/ 11 сентября 2018

Благодаря тому, что @David C. Rankin упомянул, проблема с линковкой исчезла: Вот полная команда:

gcc main.c -I / usr / include / monetdb -lmapi -lssl -lcrypto -lstream -lcurl -llzma -lbz2

...