protobuf 生成的文件无法在 Solaris SPARC 64 上编译

发布于 2024-12-16 23:48:29 字数 903 浏览 0 评论 0 原文

我正在尝试在 Solaris 10 SPARC 64 上编译一些生成的 proto.cc 文件。

我收到以下错误:

"/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 已成功编译(所有测试均已通过)

I am trying to compile some generated proto.cc files on Solaris 10 SPARC 64.

And I get these errors:

"/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.

Compiler flags are:

/apps/pkgs/studio-11.0.13/prod/bin/CC -xarch=v9 -library=stlport4 -library=Crun -features=no%conststrings -library=no%rwtools7 -erroff=nonewline

protobuf compiler flags:

CXXFLAGS = -xmemalign=8s -g0 -xO3 -xlibmil -xdepend -xbuiltin -mt -compat=5 -library=stlport4 -library=Crun -template=no%extdef  -DNDEBUG -m64 -xarch=v9 

protobuf was compiled successfully(all tests passed)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝色星空 2024-12-23 23:48:29

好的,看来我们的代码是使用原生 stl 构建的,这意味着我们无法将其与使用 stlport4 构建的 protobuf 链接起来。所以我不得不用原生的 stl 构建 protobuf。

步骤如下:

  1. 您必须应用这些补丁:https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg/protobuf/trunk/files/

  2. 运行./使用这些参数进行配置:

    ./configure LDFLAGS=-L$PWD/src/solaris --disable-64bit-solaris --prefix=/bogdan/protobuf-2.4.1

    如果您想在 SPARC 64 上构建它,请删除 --disable-64bit-solaris 并编辑 protobuf-2.4.1/src/solaris/libstdc++.la 文件以添加正确的依赖项链接器。

  3. 运行:make、make check 和 make install

Ok, so it seams that our code is build with native stl, which means we cannot link it with protobuf build with stlport4. So I had to build protobuf with native stl.

Here are the steps:

  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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文