gpt4 book ai didi

c++ - 在 Mac OS X 上共享一个 c++ 库,这样我就可以将用户定义的函数添加到 mySQL

转载 作者:行者123 更新时间:2023-11-28 06:44:25 25 4
gpt4 key购买 nike

我正尝试按照说明将我自己的用户定义函数添加到 mySQL: enter link description here

但到目前为止,它在我的 mac OS X mavericks 中不起作用。

我先做:

gcc -Wall -I /usr/local/mysql/include -I /usr/local/include -c udf_median.cc -o udf_median.o

然后我试试:

ld -shared -o udf_median.so udf_median.o

但是我得到一个错误:

ld: unknown option: -shared

有没有在 Mac os X 中共享库的方法?

我按照答案中的建议进行了尝试,我得到了:

ld -dylib -o udf_median.dylib udf_median.o
ld: warning: -macosx_version_min not specified, assuming 10.8
Undefined symbols for architecture x86_64:
"__ZdlPv", referenced from:
_median_deinit in udf_median.o
"__Znwm", referenced from:
_median_init in udf_median.o
"_free", referenced from:
_median_deinit in udf_median.o
_median_reset in udf_median.o
"_malloc", referenced from:
_median_reset in udf_median.o
"_qsort", referenced from:
_median in udf_median.o
"_realloc", referenced from:
_median_add in udf_median.o
"_strcpy", referenced from:
_median_init in udf_median.o
ld: symbol(s) not found for inferred architecture x86_64

最佳答案

Mac OS X 链接器为此使用 -dylib 标志。此外,该平台对共享库使用 .dylib 扩展名,而不是 .so

ld -dylib -o udf_median.dylib udf_median.o

由于您直接调用链接器,您可能还需要添加标志以链接通常隐式的库(例如,-lc 用于 libc)。或者,如果您的库链接到父可执行文件中存在的函数,您可能需要使用其他链接器选项来实现这一点。

关于c++ - 在 Mac OS X 上共享一个 c++ 库,这样我就可以将用户定义的函数添加到 mySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25274847/

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