2013-01-14 81 views
1

C++比較我的函數。函數「atomic_add_32_nv」必須有一個原型

在「solaris 5.10」中,一切都好! 但是在「solaris 5.9」中,如果我沒有原型,它會給我錯誤「函數」atomic_add_32_nv「必須有原型。」

請幫幫我!

+0

是否直接包含?你看過5.9系統上的那個文件,並檢查它是否包含該功能?你在兩個系統上使用了相同的編譯器嗎?等簡單的「幫助」,沒有細節永遠不會工作。 –

+0

solaris 5.9,我已經檢查過它;程序有它「#include 」,它的函數有「extern uint32_t atomic_add_32_nv(uint32_t * target,int32_t delta);」。 – dlhzt

回答

0

據我所知,原子功能支持(通過<atomic.h>)在Solaris 10中添加。谷歌搜索「solaris 10個原子操作」似乎通過各種點擊來支持這一點。

在Solaris 9上,您需要提供使用互斥鎖的封裝(它比原子操作慢得多;但可能對您的應用無關緊要)或實現這些功能(每個處理器/架構x86/sparc,您需要支持)使用匯編程序。

你也可以看看常見的開源項目(例如apache httpd,boost)如何執行並從那裏開始。

有關討論,請參閱this SO主題。

相關問題