'xadd'的boost :: shared_ptr操作数不匹配

时间:2014-02-11 07:41:30

标签: boost size shared-ptr mismatch operand

我正在使用code :: blocks和boost。我可以使用boost :: regex进行编译。

当我使用boost :: shared_ptr并编译我的项目时。我收到了这个编译错误:

  

... \ Local \ Temp \ ccviNbsT.s | 30 |错误:xadd'| ...\Local\Temp\ccviNbsT.s|63|Error: no such instruction:包括DWORD的操作数大小不匹配   PTR [eax]'|

注意:我注意到shared_ptr没有静态库。

include <boost/smart_ptr/shared_ptr.hpp>

class AClass
{

  void VAddView(boost::shared_ptr<IClass> pView)
  {

  }
};

我很困惑,有人能告诉我们什么事吗?

2 个答案:

答案 0 :(得分:0)

看起来编译器正在发出汇编器无法识别的指令。

如果您的工具链配置得当,通常不会发生这种情况。

如果您的工具链在某种程度上混淆了体系结构(例如,它为x64发出程序集但汇编程序采用32位体系结构),则可能会发生这种情况。

检查您的编译标志,并检查您是否实际调用了您希望调用的工具(特别是如果您安装了多个工具链,例如交叉编译时)

答案 1 :(得分:0)

感谢您的快速反应,我找到了这个问题的原因。我正在使用Code :: Blocks / Mingw这个编译器选项:-masm = intel,我删除了这个,我的项目开始正确构建。