我正在使用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)
{
}
};
我很困惑,有人能告诉我们什么事吗?
答案 0 :(得分:0)
看起来编译器正在发出汇编器无法识别的指令。
如果您的工具链配置得当,通常不会发生这种情况。
如果您的工具链在某种程度上混淆了体系结构(例如,它为x64发出程序集但汇编程序采用32位体系结构),则可能会发生这种情况。
检查您的编译标志,并检查您是否实际调用了您希望调用的工具(特别是如果您安装了多个工具链,例如交叉编译时)
答案 1 :(得分:0)
感谢您的快速反应,我找到了这个问题的原因。我正在使用Code :: Blocks / Mingw这个编译器选项:-masm = intel,我删除了这个,我的项目开始正确构建。