首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libACE和clang/clang++,未定义为`ACE_Atomic_Op<ACE_Thread_Mutex,long>的引用

libACE和clang/clang++,未定义为`ACE_Atomic_Op<ACE_Thread_Mutex,long>的引用
EN

Stack Overflow用户
提问于 2016-08-15 11:02:28
回答 1查看 743关注 0票数 1

我正在使用clang++ 3.8和libACE 6.3.3编译一个应用程序,并包含了-std=c++11

但我对纳入ACE Atomic_OP有异议

包括这些标题:

代码语言:javascript
复制
#include <ace/ACE.h>
#include <ace/Thread.h>
#include <ace/TSS_T.h>
#include <ace/Atomic_Op.h>

我已经

A(WorldSocketMgr.cpp.o):在函数ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator--()': /usr/include/ace/Atomic_Op.inl:72: undefined reference to ACE_Atomic_Op::decrement_fn_./ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++()': /usr/include/ace/Atomic_Op.inl:50: undefined reference to /libgame.a(WorldSocketMgr.cpp.o)中:函数ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++()': /usr/include/ace/Atomic_Op.inl:50: undefined reference to ACE_Atomic_Op::increment_fn_‘./ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++()': /usr/include/ace/Atomic_Op.inl:50: undefined reference to/libgame.a(WorldSession.cpp.o):在函数ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator=(long)': /usr/include/ace/Atomic_Op.inl:166: undefined reference to ACE_Atomic_Op::exchange_fn_.ACE_Atomic_Op::increment_fn_/libgame.a中):在函数ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-=(long)': /usr/include/ace/Atomic_Op.inl:114: undefined reference to ACE_Atomic_Op::exchange_add_fn_‘clang: error: linker命令失败,退出代码1(使用-v查看调用)

我该怎么解决呢?

更新:

我变了

代码语言:javascript
复制
ACE_Atomic_Op<ACE_Thread_Mutex, time_t> m_timeOutTime;

在……里面

代码语言:javascript
复制
ACE_Atomic_Op<ACE_Thread_Mutex, int> m_timeOutTime;

代码语言:javascript
复制
ACE_Atomic_Op<ACE_Thread_Mutex, long> m_refs;

在……里面

代码语言:javascript
复制
ACE_Atomic_Op<ACE_Thread_Mutex, int> m_refs;

它现在编译了,但我不确定它是否是一个安全的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2016-11-12 14:02:23

更新

这是由版本6.4.3之前ACE中的一个bug引起的。现在已经修好了。

原来的答案:

反应有点晚,但我希望它能对将来找到这篇文章的人有所帮助。

看起来ACE有一个bug (或者只是没有更新他们的代码)。不幸的是,目前唯一的解决方案是破解ACE的文件。

您需要根据您使用的内容找到编辑-linux.h或配置-macosx-雪豹.h。然后找到这段代码并删除它:

代码语言:javascript
复制
# ifdef __clang__
#  undef ACE_HAS_GCC_ATOMIC_BUILTINS
# endif
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38953849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档