Я пытаюсь собрать GreenSQL 1.2.2 на Mac OS X 10.5.8 Leopard Server, но я получаю следующие ошибки (которые кажутся ошибкой 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 (по 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