【问题标题】:typeinfo pragma visibility errortypeinfo pragma 可见性错误
【发布时间】:2015-07-20 02:31:37
【问题描述】:

我正在尝试在 c++ 11 中使用 std:: 中的 shared_ptr,所以我包含了显然使用 typeinfo 的内容。问题是我收到下面的错误。

In file included from /usr/include/c++/4.8/memory:71:0,
                 from /home/dev/openclTest/modules/Quant.cpp:10:
/usr/include/c++/4.8/typeinfo:39:37: error: expected ‘}’ before end of line
 #pragma GCC visibility push(default)

听上去,这是这里列出的一个已知错误: https://lists.debian.org/debian-gcc/2007/09/msg00497.html

无论如何,我希望我不必使用 boosts 库,所以如果有任何人知道的快速修复,请告诉我。我正在使用 cmake 和 g++ 来构建项目。

谢谢!

【问题讨论】:

  • 此错误适用于 GCC 4.2,因此我认为它与您的版本 (4.8) 仍然无关。发布您实际尝试编译的代码(Quant.cpp)。对于std::shard_ptr,您只需包含<memory>

标签: c++ linux c++11 cmake g++


【解决方案1】:

我刚刚遇到了 GCC 4.9.2 的类似问题。如果您忘记 typeinfo 之前包含的文件中的一些大括号,这似乎是常见的错误消息。

我没有找到完全重现该消息的代码,但使用此最小测试得到了非常相似的结果:

test.cpp:

{
#include <typeinfo>

int main() {}

我猜这很可能与您的错误相同,因为它发生在非常不同的 GCC 版本中。如果确实是同一个问题,请检查您的其他包含。

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 2015-02-14
    • 2011-02-26
    • 2012-01-30
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 2017-07-23
    相关资源
    最近更新 更多