2010-03-26 1 views
11
#include <intrin.h> 

выше доложит:Как справиться с "intrin.h: Нет такого файла или каталога"?

intrin.h: No such file or directory 

который, кажется, заголовочный файл MSVC, но я использую Eclipse CDT, как я могу сделать его доступным Есть некоторые библиотеки нужны?

CDT использует MinGW для компиляции, но нет intrin.h:

D:\Tools\MinGW\lib\gcc\mingw32\3.4.5\include>dir *intrin.h 

2006-01-17 21:47   34,528 emmintrin.h 
2006-01-17 21:47   22,281 mmintrin.h 
2006-01-17 21:47    3,586 pmmintrin.h 
2006-01-17 21:47   30,925 xmmintrin.h 

Есть ли кто-нибудь может помочь?

+0

Вы используете GCC 3.4.5. Было бы разумно обновить, потому что это слишком старо, чтобы быть полезным ... – rubenvb

ответ

7

Это заголовок, который объявляет кучу «intrinsics» - функций, встроенных в компилятор, чтобы он мог испускать встроенный код для них. Если вы используете VC++ в качестве компилятора, он должен находиться в том же каталоге с другими стандартными заголовками. Если вы используете другой компилятор, вам нужно изменить встроенные функции в соответствии с используемым вами компилятором. Например, gcc имеет множество аналогичных внутренних функций, но имеет несколько иные имена.

Редактировать: Учитывая, что вы используете MinGW (I.e., gcc), вы в значительной степени застреваете с портированием кода (или с помощью VC++). Если вы имеете дело с довольно небольшим количеством кода, один из способов сделать это - прокомментировать строку, содержащую этот заголовок, и попытаться ее скомпилировать. Компилятор укажет на ошибки, в которых встроенные функции были использованы, а gcc - нет. Затем вы можете просмотреть их (например, на MSDN) и попытаться найти то, что gcc делает, что делает (достаточно близко) одну и ту же вещь. В зависимости от того, что он использует (и сколько), что может быть быстрым и легким, или может быть проще начать с создания нового кода, чтобы делать то же самое.

* Исходные заголовки *, которые вы нашли, будут (вероятно) содержать декларации (по крайней мере некоторых из) gcc-аналогов Microsoft, которые вам нужно заменить. Вы, вероятно, в конечном итоге будете использовать их в процессе портирования кода, поэтому не забывайте о них. В то же время, как раз включение этих заголовков вместо Microsoft почти наверняка не заставит работать код.

+0

Но я использую eclipse-cdt :( – Mask

+0

Eclipse - это редактор/IDE. Здесь важно, какой именно компилятор вы используете * с * Eclipse –

+0

Использует инструментальную цепочку MinGW. – Mask

6

У меня такая же проблема. используя eclipse + cdt + mingw32-gcc7.2 + glm (openGL math libraty) Я заменяю #include <intrin.h>#include <x86intrin.h> Добавляем флаг в gcc -msse2 и все работаем.

Смежные вопросы