0

我在使用 gcc4.6 与 Linux 上的 Pantheios 链接时遇到问题,出现以下错误:

In function `pantheios::internal::log_dispatch_3(int, unsigned int, char const*, unsigned int, char const*, unsigned int, char const*)':
sig_writing_sink.cpp:(.text._ZN9pantheios8internal14log_dispatch_3EijPKcjS2_jS2_[pantheios::internal::log_dispatch_3(int, unsigned int, char const*, unsigned int, char const*, unsigned int, char const*)]+0x6d): undefined reference to `pantheios_log_3_no_test'
collect2: ld returned 1 exit status

我正在链接:

  • libpantheios.1.core.gcc46.mt.a
  • libpantheios.1.fe.simple.gcc46.mt.a
  • libpantheios.1.be.fprintf.gcc46.mt.a
  • libpantheios.1.bec.fprintf.gcc46.mt.a
  • libpantheios.1.util.gcc46.mt.a
  • libpantheios.1.appl.gcc46.mt.a
  • libpantheios.1.core.gcc46.mt.a

在哪里pantheios_log_3_no_test
我错过了什么?

4

1 回答 1

0

事实证明,在 gcc 中,符号仅向前链接,因此给定库中的依赖符号将仅从链接列表中跟随它的库中解析。有关更多详细信息,请参见此处。
通过将其他静态链接的库移动到Pantheios之前,链接器成功了。

于 2013-03-12T07:29:16.960 回答