gpt4 book ai didi

macos - 在Mac OS X 10.5.8 Leopard Server上构建GreenSQL 1.2.2时出错

转载 作者:行者123 更新时间:2023-12-02 10:43:14 25 4
gpt4 key购买 nike

我正在尝试在Mac OS X 10.5.8 Leopard Server上构建GreenSQL 1.2.2,但是出现以下错误(似乎是ld错误?):

cc -g -Wall -I/usr/local/include/ -I/usr/include/mysql/ -I/usr/local/include/mysql/ -DHAVE_MYSQL_CLIENT -fPIC -c -Wall sql_api.c
cc -g -Wall -I/usr/local/include/ -L/usr/lib64/mysql -L/usr/local/lib/mysql -L/usr/lib/mysql -lmysqlclient -shared -Wl,-soname,libgsql-mysql.so.1 -DHAVE_MYSQL_CLIENT -o libgsql-mysql.so.1 sql_api.o
ld: unknown option: -soname
collect2: ld returned 1 exit status
make[2]: *** [api] Error 1
make[1]: *** [greensql-fw] Error 2
cp: greensql-fw: No such file or directory
make: *** [greensql-fw] Error 1

我已经构建并安装了以下先决条件(放入 /usr/local):pcre 8.01,libevent 1.4.13-stable以及MySQL客户端二进制文件和 header (每个 http://support.apple.com/kb/TA25017,尽管我将MySQL-45.binaries.tar.gz安装为我在Mac OS X 10.5.8上)。

我对在Mac OS X上构建开源软件非常熟悉,但是我必须承认,我不知道绝对会有很多命令行编译的来龙去脉。之前我没有遇到过 ld错误(并且 Makefile中没有任何内容让我惊讶)。我在 -soname的手册页中找不到提及 ld选项的内容。

任何建议将不胜感激。

更新#1 :我在 -soname中发现了 src/lib/Makefile的出现,将其替换为 -install_name并进行了进一步扩展。现在我得到以下信息:
cc -g -Wall -I/usr/local/include/ -I/usr/include/mysql/ -I/usr/local/include/mysql/ -DHAVE_MYSQL_CLIENT -fPIC -c -Wall sql_api.c
cc -g -Wall -I/usr/local/include/ -L/usr/lib64/mysql -L/usr/local/lib/mysql -L/usr/lib/mysql -lmysqlclient -shared -Wl,-install_name,libgsql-mysql.so.1 -DHAVE_MYSQL_CLIENT -o libgsql-mysql.so.1 sql_api.o
Undefined symbols:
"_compress", referenced from:
_my_compress_alloc in libmysqlclient.a(my_compress.o)
_my_compress in libmysqlclient.a(my_compress.o)
"_main", referenced from:
start in crt1.10.5.o
"_uncompress", referenced from:
_my_uncompress in libmysqlclient.a(my_compress.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [api] Error 1
make[1]: *** [greensql-fw] Error 2
cp: greensql-fw: No such file or directory
make: *** [greensql-fw] Error 1

更新#2 :进一步编辑 src/lib/Makefile,这次将 -lz添加到 CXXFLAGS的末尾克服了压缩错误。现在,错误如下:
cc -g -Wall -I/usr/local/include/ -lz -I/usr/include/mysql/ -I/usr/local/include/mysql/ -DHAVE_MYSQL_CLIENT -fPIC -c -Wall sql_api.c
i686-apple-darwin9-gcc-4.0.1: -lz: linker input file unused because linking not done
cc -g -Wall -I/usr/local/include/ -lz -L/usr/lib64/mysql -L/usr/local/lib/mysql -L/usr/lib/mysql -lmysqlclient -shared -Wl,-install_name,libgsql-mysql.so.1 -DHAVE_MYSQL_CLIENT -o libgsql-mysql.so.1 sql_api.o
Undefined symbols:
"_main", referenced from:
start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [api] Error 1
make[1]: *** [greensql-fw] Error 2
cp: greensql-fw: No such file or directory
make: *** [greensql-fw] Error 1

最佳答案

编辑:回答得太快了...所以删除了原始答案。

尝试使用-dylib_install_name而不是-so_name(并将dylib作为扩展名而不是.so)。

关于macos - 在Mac OS X 10.5.8 Leopard Server上构建GreenSQL 1.2.2时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2412085/

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