Я пытаюсь скомпилировать пин инструмент с Python.h
и я получаю более 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
Знаете ли вы о быстром решении этой проблемы?
Спасибо!
Если вы хотите использовать заголовок 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