我正在尝试使用Python.h
编译pin工具,并且有关模糊符号的错误超过100个。
我尝试将include
分隔到不同的命名空间,但它产生了许多其他错误。
包括windows.h
时会发生同样的情况。
所有错误如下:
D:\proj\Pin\source\include\pin\gen\types_core.TLH(67): error C2872: 'INT32' : ambiguous symbol could be 'C:\Program Files (x86)\Windows Kits\8.0\Include\shared\basetsd.h(72) : int INT32 or D:\proj\pin\Pin\source\include\pin\gen\types_foundation.TLH(88) : LEVEL_BASE::INT32' D:\proj\pin\Pin\source\include\pin\gen\types_core.TLH(81) :
see reference to class template instantiation 'LEVEL_CORE::INDEX<dummy>' being compiled
您是否知道有关此问题的快速解决方法?
谢谢!
答案 0 :(得分:-1)
如果要使用Windows.h标头,则必须在其自己的命名空间中使用它:
namespace WINDOWS
{
#include <Windows.h>
}
然后使用其名称空间来使用Windows.h中的内容:
WINDOWS::DWORD foo; // use WINDOWS namespace
如果你没有为windows.h标题使用命名空间,你会发现大量的名称冲突与来自PIN本身的各种标题。
修改强>:
记得在手册的某处提到过(参见:“Pin和Windows之间的冲突”):
https://software.intel.com/sites/landingpage/pintool/docs/65163/Pin/html/index.html#RESTRICTIONS