gpt4 book ai didi

mysql - 从源代码构建 MySQL 服务器时,如何链接到自定义库?

转载 作者:行者123 更新时间:2023-12-04 19:24:42 24 4
gpt4 key购买 nike

我根据这个 url 使用标准源代码分发 (mysql-server-8.0) 安装了 MySQL 服务器:https://dev.mysql.com/doc/refman/8.0/en/installing-source-distribution.html .出于某种目的,我在 mysql-server-8.0/sql/mysqld.cc 中的 MySQL 源代码中添加了一些代码。 ,而我添加的代码使用了自定义 .so /usr/lib 中的图书馆.
我想在构建 MySQL 源代码时链接到这个库,所以在构建 MySQL 时,我使用了以下命令:

cmake .. -DWITH_BOOST=/home/ubuntu/mysql-server-8.0/boost \
-DCMAKE_C_FLAGS="-lmy_lib_name -L/usr/lib" \
-DCMAKE_CXX_FLAGS="-lmy_lib_name -L/usr/lib" \
-DCMAKE_C_LINK_FLAGS="-lmy_lib_name -L/usr/lib" \
-DCMAKE_CXX_LINK_FLAGS="-lmy_lib_name -L/usr/lib" \
-DCONFIG_CLIENT_LIBS="-lmy_lib_name -L/usr/lib" \
-DCONFIG_LIBS_PRIVATE="-lmy_lib_name -L/usr/lib" \
-DCMAKE_EXE_LINKER_FLAGS="-lmy_lib_name -L/usr/lib" \
-DCMAKE_MODULE_LINKER_FLAGS="-lmy_lib_name -L/usr/lib" \
-DCMAKE_SHARED_LINKER_FLAGS="-lmy_lib_name -L/usr/lib" \
make
虽然我在编译链接的时候尝试了加flag,但是构建失败,报 error: undefined reference to 'symbols in my library' .有什么办法让它工作吗?谢谢!

最佳答案

感谢您的意见!我发现我在 .cc 中没有正确使用 C源文件。应该注意的是,在 .cc文件 C 头文件应该像这样使用:

extern "C" {
#include "mylib.h"
}
所以链接过程运行良好。由于我在 .cc 中误用了库头文件,编译器无法识别函数签名文件。

关于mysql - 从源代码构建 MySQL 服务器时,如何链接到自定义库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72230155/

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