1
,當我嘗試編譯下面的代碼的Ubuntu 12.04系統:的std :: atomic_thread_fence是未定義參考
#include <atomic>
int a;
int main()
{
a = 0;
std::atomic_thread_fence(std::memory_order_acquire);
a = 1;
}
我得到這樣一個錯誤信息:
g++ test.cpp -std=c++0x
/tmp/ccayKntC.o: In function `main': test.cpp:(.text+0x14): undefined reference to `std::atomic_thread_fence(std::memory_order)' collect2: ld returned 1 exit status
與clang++
編譯時會出現這種情況也。由於這是一個鏈接器錯誤,我猜我的libstdC++版本缺少必要的功能。但是,其他的原子操作似乎也行得通。
我使用的是Ubuntu 12.04。我想知道我的系統安裝程序是否存在問題,無論是我的libstdC++中缺少的功能,還是其他可能的問題。理想情況下,我希望能夠解決問題。
謝謝我從PPA安裝了gcc 4.7並解決了我的問題。 – 2013-05-08 15:33:40