我试图编译显示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:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference tosocket_rastream'
mnstr_destroy' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toSHA384_Init'
MD5_Final' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toRIPEMD160_Init'
mnstr_errnr'的未定义引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toRIPEMD160_Update'
SHA384_Update' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toSHA224_Init'
SHA256_Init' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toSHA512_Update'
mnstr_init' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toblock_stream'
mnstr_write' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toSHA384_Final'
SHA1_Update' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference tomnstr_error'
SHA512_Final' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toSHA256_Final'
mnstr_flush' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toSHA1_Init'
SHA224_Final' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference tomnstr_read_block'
mnstr_printf' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toSHA256_Update'
isa_block_stream' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference tomnstr_set_byteorder'
mnstr_read' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference tosocket_wastream'
MD5_Init' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toRIPEMD160_Final'
close_stream' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toMD5_Update'
SHA1_Final' /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so:未定义引用
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference toopen_wastream'
SHA512_Init' collect2:错误:ld返回1退出状态
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libmapi.so: undefined reference to
当我尝试解决方案时提到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
感谢@David C. Rankin提到的链接问题消失了:这是完整的命令:
gcc main.c -I / usr / include / monetdb -lmapi -lssl -lcrypto -lstream -lcurl -llzma -lbz2