2015-05-09 25 views
0

我想從C++ 11中的std ::中使用shared_ptr,所以我包含了顯然使用typeinfo的東西。問題是我得到錯誤的下面。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) 

從它聽起來像,這是這裏列出一個已知的bug: https://lists.debian.org/debian-gcc/2007/09/msg00497.html

不管怎樣,我希望我沒有使用提升庫,所以,如果有一個速戰速決的人都知道關於,請讓我知道。我使用cmake和g ++來構建項目。

謝謝!

+2

這個錯誤是針對GCC 4.2的,所以我真的不認爲它與你的版本(4.8)仍然相關。發佈您實際嘗試編譯的代碼(Quant.cpp)。對於'std :: shard_ptr',你只需要包含[''](http://en.cppreference.com/w/cpp/memory/shared_ptr)。 –

回答

0

我剛剛和GCC 4.9.2有類似的問題。如果在typeinfo之前包含的文件中忘記了一些大括號,這似乎是常見的錯誤信息。

我沒有找到代碼來精確地再現消息,但得到了非常相似的使用這個最小測試的東西:

test.cpp: 

{ 
#include <typeinfo> 

int main() {} 

我想這可能是相同的錯誤你,因爲它非常不同版本的GCC發生。如果確實是同一問題,請檢查您的其他包含。