gpt4 book ai didi

mysql - GCC 没有链接 RHash?

转载 作者:行者123 更新时间:2023-11-29 17:54:07 25 4
gpt4 key购买 nike

我在我的测试环境中运行了这个,但我想我不知道我是如何做到的。基本上,我正在尝试编译一个使用 RHash 中的函数的 MySQL UDF,但我是从 MySQL 服务器获取的

Error Code: 1126. Can't open shared library 'sha3.so' (errno: 0 /usr/lib/mysql/plugin/sha3.so: undefined symbol: rhash_msg)

在服务器上我运行了这些

apt install rhash librhash-dev

我什至从 https://github.com/rhash/RHash 下载了源代码(只是因为它尚未运行)并运行

./configure
make test
make install

这似乎没有给我任何错误,然后我用

进行编译
gcc -I/usr/include/mysql -lrhash -o sha3.so -shared sha3.c -fPIC

这也不会给出任何错误,但运行时我收到 MySQL 错误

create function`sha3`returns string soname'sha3.so';

我在这里做错了什么步骤?

以防万一,我的来源在这里 https://gist.github.com/BrianLeishman/a0f40e7a0a87a7069c5c56a768ff3179

<小时/>

我看过这个答案What is an undefined reference/unresolved external symbol error and how do I fix it? ,但我很确定我已经正确设置了参数的顺序,但也许我错了,因为他们所有的示例都讨论在链接之前设置输出,这绝对不是我在这里所做的。

最佳答案

对于刚开始使用 GCC 和 C/C++ 的人来说,建议的问题是重复的,这可能有点太技术性了,所以虽然它在技术上可能是重复的,但我希望这个问题/答案留在这里和我在同一个地方的人。

基本上,某些版本的 Linux 执行彼此不同的编译步骤,因此

gcc -I/usr/include/mysql -lrhash -o sha3.so -shared sha3.c -fPIC

可能有效,具体取决于操作系统和版本,但为了确保这适用于所有内容,请将 -lrhash 移到 sha3.c 之后(在本例中),例如

gcc -I/usr/include/mysql -o sha3.so -shared sha3.c -lrhash -fPIC

关于mysql - GCC 没有链接 RHash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49016081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com