Macos 在Mac OS X 10.5.8 Leopard服务器上构建GreenSQL 1.2.2时出错

Macos 在Mac OS X 10.5.8 Leopard服务器上构建GreenSQL 1.2.2时出错,macos,compiler-errors,Macos,Compiler Errors,我正在尝试在Mac OS X 10.5.8 Leopard服务器上构建1.2.2,但出现以下错误,这似乎是一个ld错误: 我已经在/usr/local中构建并安装了以下先决条件:pcre 8.01、libevent 1.4.13-stable,以及MySQL客户端二进制文件和每个头文件,尽管我在Mac OS X 10.5.8上安装了MySQL-45.binaries.tar.gz 我非常熟悉在MacOSX上构建开源软件,但我必须承认,命令行编译肯定有很多细节我不知道。我以前没有遇到过ld错误,也

我正在尝试在Mac OS X 10.5.8 Leopard服务器上构建1.2.2,但出现以下错误,这似乎是一个ld错误:

我已经在/usr/local中构建并安装了以下先决条件:pcre 8.01、libevent 1.4.13-stable,以及MySQL客户端二进制文件和每个头文件,尽管我在Mac OS X 10.5.8上安装了MySQL-45.binaries.tar.gz

我非常熟悉在MacOSX上构建开源软件,但我必须承认,命令行编译肯定有很多细节我不知道。我以前没有遇到过ld错误,也没有在Makefile中看到任何向我跳出来的东西。我在ld的手册页中找不到关于a-soname选项的提及

如有任何建议,将不胜感激

更新1:我在src/lib/Makefile中发现了-soname的出现,将其替换为-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\u install\u name而不是-so\u name,并将dylib作为扩展名而不是.so.

编辑:回答有点太快了。。。所以去掉了原来的答案


尝试使用-dylib\u install\u name而不是-so\u name,并将dylib作为扩展名而不是.so.

谢谢您的建议。不幸的是,在我的构建目录的任何子目录中都没有libgsql mysql.so.1。我假设,因为它发生在-soname选项之后,所以他们正试图命名这个库,“gsql”可能指的是“greensql”。另外,我在源代码中的任何makefile中都没有看到对ld的调用。也许我漏掉了一个?嗯,关于lib的名字你可能是对的。你能试着替换-soname下面的flag-dylib\u install\u名称吗?别忘了弄清楚,嗯,我不知道应该放在哪里。在Makefile、src/Makefile、src/parser/Makefile或src/lib/Makefile这四个make文件中都没有设置LD_标志或其他对“LD”的引用。实际上,我收回了它,我确实在src/lib/Makefile中找到了-soname的出现,并进一步了解了更新后的问题。还有更多的错误,但这是一个很好的开始。对于压缩/解压,我想很抱歉,我没有太多时间来详细回答,现在您只需要zlib。在我的雪豹安装中,它出现在/usr/libz…dylib中。您可以尝试添加-lz标志吗?谢谢您的建议。不幸的是,在我的构建目录的任何子目录中都没有libgsql mysql.so.1。我假设,因为它发生在-soname选项之后,所以他们正试图命名这个库,“gsql”可能指的是“greensql”。另外,我在源代码中的任何makefile中都没有看到对ld的调用。也许我漏掉了一个?嗯,关于lib的名字你可能是对的。你能试着替换-soname下面的flag-dylib\u install\u名称吗?别忘了弄清楚,嗯,我不知道应该放在哪里。在Makefile、src/Makefile、src/parser/Makefile或src/lib/Makefile这四个make文件中都没有设置LD_标志或其他对“LD”的引用。实际上,我收回了它,我确实在src/lib/Makefile中找到了-soname的出现,并进一步了解了更新后的问题。还有更多的错误,但这是一个很好的开始。对于压缩/解压,我想很抱歉,我没有太多时间来详细回答,现在您只需要zlib。在我的雪豹安装中,它出现在/usr/libz…dylib中。您可以尝试添加-lz标志吗?
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