使用C代码链接错误以连接到Monetdb

问题描述 投票:1回答:1

我试图编译显示here的代码:

但是我收到了链接错误。 我尝试了解决方案提到here

但同样,我收到了这个错误:

gcc main.c -I / usr / include / monetdb -lmapi /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:SHA224_Update'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/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'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
SHA512_Init' collect2:错误:ld返回1退出状态

当我尝试解决方案时提到here

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

我收到了这个错误:

bzip2搜索路径中找不到包pkg-config。 也许您应该将包含`bzip2.pc'的目录添加到PKG_CONFIG_PATH环境变量中。 未找到'monetdb-stream'所需的包'bzip2'

经过搜索,我发现,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

c gcc linker-errors mapi monetdb
1个回答
0
投票

感谢@David C. Rankin提到的链接问题消失了:这是完整的命令:

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

© www.soinside.com 2019 - 2024. All rights reserved.