Созданные файлы protobuf не компилируются в Solaris SPARC 64
Я пытаюсь скомпилировать некоторые сгенерированные файлы proto.cc на Solaris 10 SPARC 64.
И я получаю эти ошибки:
"/apps/pkgs/studio-11.0.13/prod/include/CC/stlport4/stl/_alloc.h", line 134: Error: The function "__stl_new" must have a prototype.
"/apps/pkgs/studio-11.0.13/prod/include/CC/stlport4/stl/_alloc.h", line 135: Error: The function "__stl_delete" must have a prototype.
"/apps/pkgs/studio-11.0.13/prod/include/CC/stlport4/./stdexcept", line 52: Error: _STLP_EXCEPTION_BASE is not defined.
Флаги компилятора:
/apps/pkgs/studio-11.0.13/prod/bin/CC -xarch=v9 -library=stlport4 -library=Crun -features=no%conststrings -library=no%rwtools7 -erroff=nonewline
Флаги компилятора protobuf:
CXXFLAGS = -xmemalign=8s -g0 -xO3 -xlibmil -xdepend -xbuiltin -mt -compat=5 -library=stlport4 -library=Crun -template=no%extdef -DNDEBUG -m64 -xarch=v9
Protobuf был успешно скомпилирован (все тесты пройдены)
Спасибо Богдан
1 ответ
Решение
Итак, это выглядит так, что наш код собран с использованием собственного stl, что означает, что мы не можем связать его с сборкой protobuf с использованием stlport4. Поэтому мне пришлось собрать протобуф с нативным stl.
Вот шаги:
1. You have to apply these patches: https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg/protobuf/trunk/files/
2.Run ./configure with these parameters:
./configure LDFLAGS=-L$PWD/src/solaris --disable-64bit-solaris --prefix=/bogdan/protobuf-2.4.1
If you want to build it on SPARC 64, remove --disable-64bit-solaris and edit protobuf-2.4.1/src/solaris/libstdc++.la file to add the correct dependecies to the linker.
3. Run: make, make check and make install
С уважением, Богдан