首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solaris SunStudio 12.4标准库链接问题

Solaris SunStudio 12.4标准库链接问题
EN

Stack Overflow用户
提问于 2015-04-21 23:09:12
回答 1查看 1.3K关注 0票数 3

我正在尝试使用SunStudio 12.4从Solaris-10上的boost-asio编译一个示例。用GCC 4.9.2编译是可行的,但是我需要支持这两个编译器,所以仅仅切换不是一种选择。

CC -V输出: CC: Sun C++ 5.13 SunOS_sparc 2014/10/20

编译行:(对于每个cpp文件)

CC -m32 -std=c++11 -I./asio-1.10.6/include -I./boost/include/boost-1_58 -c *.cpp -o *.o

链接行:(注意*.o实际上是以前生成的所有对象文件的列表)

CC -m32 -L./boost/sparc/sun/release32/lib *.o -o httpServer -lCrun -lCstd -lxnet -lboost_system

问题:

对于标准库内容,我得到了一堆未解决的符号(如string、ios_base、locale等)。我发布了链接器错误这里

我强烈怀疑这与-std=c++11的使用有关。我之所以包括这个选项,是因为iterator_traits存在编译问题。尽管iterator_traits不是C++11特性,但由于某种原因,SunStudio无法编译它,除非它是以c++11模式编译。关于iterator_traits的错误

Error: iterator_traits is not a member of std.

导致此编译失败的代码位于boost boost/detail/iterator.hpp中。代码如下。

代码语言:javascript
复制
// (C) Copyright David Abrahams 2002.
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)

#ifndef ITERATOR_DWA122600_HPP_
#define ITERATOR_DWA122600_HPP_

// This header is obsolete and will be deprecated.

#include <iterator>

namespace boost
{

namespace detail
{

using std::iterator_traits;
using std::distance;

} // namespace detail

} // namespace boost

#endif // ITERATOR_DWA122600_HPP_

包含和使用此标头的其他内容会生成像Error: iterator_traits is not a member of boost::detail这样的错误,然后产生其他语法错误,因为现在它认为以下所有代码都是无效的。

其他我尝试过的事情:

  • 在-lC之前添加-lCrun (链接器找不到那个库)
  • 添加-lc (类似的问题)。
  • 签入SUNWspro/libs目录,发现libCrun.so和libCstd.so都存在。
  • 把-lCstd放在-lCrun前面

其他(不太相关)信息:

  • SPARC
  • 所讨论的asio示例是httpServer (我相信它在示例中的服务器目录下)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-22 01:44:41

来自“文件”:

在C++ 11模式下,CC编译器使用提供的g++ ABI和g++运行时库的一个版本。对于这个版本,使用了g++运行时库的4.8.2版本。 ABI描述生成的对象代码中的低级细节。使用不同ABI的模块不能成功地链接到程序中。--这意味着您必须在程序中的所有模块上使用C++11模式,或者没有一个模块是

因此,您必须将“-std=c++11”指定到链接器阶段。你现在不能这么做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29784788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档