【问题标题】:Solaris library linking with STLport4.6.2 giving ostream related undefined error与 STLport4.6.2 链接的 Solaris 库给出与 ostream 相关的未定义错误
【发布时间】:2015-08-08 05:37:09
【问题描述】:

我有一个遗留的 C++ 项目,现在我第一次使用 stlport4 编译它。

我所做的是: 1.建了一个libmcommon_stl库:编译时使用-libraty=stlport4 -library=no%Csd。我没有在 STL 配置中禁用 ostream,直到这里一切正常;

  1. 与上述库一起开始完整的项目编译,得到链接器错误 链接错误: rtlink -cxx -optimized -i -mt -L/home/my/SunCC/prod/lib -L/home/my/misc/sqlite3/lib -lsqlite3 -L//home/my/misc_libs/solaris-32bit-tools /xerces-c-3/lib -lxerces-c -library=stlport4 -o ../../bin/testcpp_stl obj_rel/testcpp_stl.o -lposix4 -L/home/my/lib -L/home/my/misc /STLport4.6.2/lib -lstlport_sunpro -Bdynamic -L/home/my/misc/sourcepro5_stlport462/lib -loas -L。 -R/home/my/misc/sqlite3/lib -ltls7712d -lmcommon_stl -ldbt5312d -L../lib -L/home/my/misc/ACE5.3_STLport4.6.2/ACE_wrappers/ace -lACE -lNOTIF

未定义的第一个引用 文件中的符号 std::ostream &operator

我了解到链接器无法找到运算符

cerr (RWCollectableString)rwhIterator.value()

我尝试使用 -library=Cstd 但看到很多错误。如何与ostream链接?现在可以摆脱cerr依赖了吗?

【问题讨论】:

    标签: c++ stl operators undefined ostream


    【解决方案1】:

    <iostream> 和 STL 在历史上是不相关的。自 1998 年以来,当两者都成为标准库的一部分时,两者变得相关 = namespace std。到时候,两人就粘在一起了。

    STLport 是 1998 年之前的 STL 的延续。将它粘贴到 IOstreams 有点棘手,因为预期的确切流是什么? STLport 的主要用途是在完全缺少标准库的平台中,因此可以替代标准 IO 流,但也可以选择使用标准 IO 流。

    从您的错误来看,您对流的选择似乎不一致。你要哪一个?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多