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

yukarıda bildirir:?"intrin.h: Böyle bir dosya veya dizin yok" ile nasıl baş edilir?

intrin.h: No such file or directory 
bir MSVC başlık dosyası gibi görünüyor

ama Eclipse CDT kullanıyorum, nasıl gerekli bazı kütüphaneler var mı kullanılabilir olmasını sağlayabilirsiniz?

cdt derleme için MinGW kullanır, ancak hiçbir intrin.h vardır:

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 

kimse yardımcı olabilir var mı?

+0

GCC 3.4.5 kullanıyorsunuz. Güncelleştirmek için akıllıca olacaktır, çünkü bu sadece yararlı olmak için çok eski ... – rubenvb

cevap

7

Bu, "intrinsics" bir demet bildiren bir başlıktır - derleyicide yerleşik olan işlevler, böylece bunlar için satır içi kod yayabilir. Derleyici olarak VC++ kullanıyorsanız, diğer standart üstbilgileriyle aynı dizinde olmalıdır. Farklı bir derleyici kullanıyorsanız, kullanmakta olduğunuz derleyiciye uyacak şekilde intrinsics'i değiştirmeniz gerekir. Örneğin gcc, benzer içsel işlevlere sahiptir, ancak biraz farklı isimler içerir.

Düzenleme: MinGW (I.e., gcc) kullandığınız göz önüne alındığında, kodu taşıyarak (veya VC++ kullanarak) neredeyse sıkışmışsınız demektir. Oldukça küçük bir kodla uğraşıyorsanız, bunu yapmanın bir yolu bu başlığı içeren satırı yorumlamak ve derlemeyi denemektir. Derleyici, gcc'nin sahip olmadığı içsel işlevlerin kullanıldığı hataları gösterecektir. Daha sonra bunları (ör. MSDN'de) görebilir ve gcc'nin aynı şeyi (yeterince yakın) sağlayan bir şey bulmaya çalışabilirsiniz. Ne işe yaradığına (ve ne kadar) bağlı olarak hızlı ve kolay olabilir veya aynı şeyleri yapmak için yeni kod üretmeye başlamak daha kolay olabilir.

Bulduğunuz içsel başlıklar, (muhtemelen) gcc'nin muadillerini (en azından bir kısmı) Microsoft'un değiştirmeniz gerekenleri içeren beyanlarını içerecektir. Muhtemelen kodu taşıma sürecinde bunları kullanarak sona erecek, bu yüzden onları unutma. Aynı zamanda, sadece Microsoft'un yerine bu başlıkların dahil edilmesi neredeyse kesinlikle kod çalışması yapmayacaktır.

+0

Ama ben eclipse-cdt kullanıyorum :( – Mask

+0

Eclipse bir editör/IDE. Burada önemli olan ne derleyici kullanıyorsunuz * ile * Eclipse –

+0

MinGW takım zincirini kullanır – Mask

6

Aynı problemim var. eclipse + cdt + mingw32-gcc7.2 + glm (openGL matematik libraty) kullanımı #include <x86intrin.h> işaretini gcc -msse2 'ye ekledikten sonra çalışıyorum ve tüm çalışanlar yerine #include <intrin.h> değiştiriyorum.

İlgili konular