Ошибка компиляции инструмента вывода с помощью python включает в себя ошибку C2872: «UINT32»: неоднозначный символ

Я пытаюсь скомпилировать пин инструмент с 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

Знаете ли вы о быстром решении этой проблемы?

Спасибо!

2

Решение

Если вы хотите использовать заголовок 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

-1

Другие решения


По вопросам рекламы [email protected]