2013-01-14 44 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主题。

相关问题