【发布时间】:2019-02-15 01:34:43
【问题描述】:
我已经尝试编译here显示的代码:
但我遇到了链接错误。
我尝试了提到here的解决方案。
但是,我又收到了这个错误:
gcc main.c -I /usr/include/monetdb -lmapi
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用SHA224_Update'mnstr_settimeout'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用socket_rastream'mnstr_destroy'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用SHA384_Init'MD5_Final'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用RIPEMD160_Init'mnstr_errnr'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用RIPEMD160_Update'SHA384_Update'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用SHA224_Init'SHA256_Init'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用SHA512_Update'mnstr_init'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用block_stream'mnstr_write'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用SHA384_Final'SHA1_Update'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用mnstr_error'SHA512_Final'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义对SHA256_Final'mnstr_flush'的引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用SHA1_Init'SHA224_Final'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用mnstr_read_block'mnstr_printf'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用SHA256_Update'isa_block_stream'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用mnstr_set_byteorder'mnstr_read'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用socket_wastream'MD5_Init'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用RIPEMD160_Final'close_stream'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用MD5_Update'SHA1_Final'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用open_wastream'SHA512_Init'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
collect2:错误:ld 返回 1 个退出状态
当我尝试解决方案时提到here:
pkg-config --libs monetdb-mapi and pkg-config --cflags monetdb-mapi
我收到了这个错误:
在
pkg-config搜索路径中找不到包bzip2。
或许您应该将包含 `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
【问题讨论】:
-
您似乎缺少与 libSSL 的链接(例如
-lssl,可能还有-lcrypto)查看未找到的内容,例如“未定义对SHA224_Update的引用”。见SHA224_Update -
非常感谢您的帮助
标签: c gcc linker-errors mapi monetdb