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

trên sẽ báo cáo:Làm thế nào để đối phó với "intrin.h: Không có tập tin hoặc thư mục"?

intrin.h: No such file or directory 

Mà dường như là một tập tin tiêu đề MSVC, nhưng tôi đang sử dụng Eclipse CDT, làm thế nào tôi có thể làm cho nó có sẵn Có một số thư viện cần thiết?

CDT sử dụng MinGW cho biên dịch, nhưng không có 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 

Có ai có thể giúp đỡ?

+0

Bạn đang sử dụng GCC 3.4.5. Nó sẽ là khôn ngoan để cập nhật, bởi vì đó chỉ là quá cũ để có ích ... – rubenvb

Trả lời

7

Đây là tiêu đề khai báo một loạt các "nội tại" - các hàm được tích hợp vào trình biên dịch để nó có thể phát ra mã nội tuyến cho chúng. Nếu bạn đang sử dụng VC++ làm trình biên dịch, nó phải nằm trong cùng thư mục với các tiêu đề chuẩn khác của nó. Nếu bạn đang sử dụng một trình biên dịch khác, bạn sẽ cần phải thay đổi nội tại cho phù hợp với trình biên dịch bạn đang sử dụng. gcc, ví dụ, có rất nhiều chức năng nội tại tương tự, nhưng với các tên hơi khác nhau.

Chỉnh sửa: Do bạn đang sử dụng MinGW (I.e., gcc), bạn đang gặp nhiều khó khăn khi chuyển mã (hoặc sử dụng VC++). Nếu bạn đang xử lý một số lượng khá nhỏ của mã, một cách để làm điều đó là để nhận xét ra dòng bao gồm tiêu đề đó, và cố gắng biên dịch nó. Trình biên dịch sẽ chỉ ra các lỗi trong đó các hàm nội tại được sử dụng mà gcc không có. Sau đó, bạn có thể tìm kiếm những thứ đó (ví dụ: trên MSDN) và cố gắng tìm một thứ gì đó mà gcc cung cấp cho điều đó (gần đủ để) điều tương tự. Tùy thuộc vào những gì nó sử dụng (và bao nhiêu) mà có thể được nhanh chóng và dễ dàng, hoặc nó có thể được dễ dàng hơn để bắt đầu sản xuất mã mới để làm những điều tương tự.

* Các tiêu đề nội tại bạn đã tìm thấy (có thể) chứa các khai báo của (ít nhất một số) đối tác của gcc với Microsoft mà bạn cần thay thế. Có thể bạn sẽ sử dụng chúng trong quá trình chuyển mã, vì vậy đừng quên chúng. Đồng thời, chỉ cần bao gồm những tiêu đề thay vì của Microsoft gần như chắc chắn sẽ không làm cho mã làm việc hoặc.

+0

Nhưng tôi đang sử dụng eclipse-cdt: ( – Mask

+0

Eclipse là một trình soạn thảo/IDE. Điều quan trọng ở đây là trình biên dịch bạn đang sử dụng * với * –

+0

Nó sử dụng chuỗi công cụ MinGW – Mask

6

Tôi có cùng một vấn đề. sử dụng eclipse + cdt + mingw32-gcc7.2 + glm (openGL math libraty) Tôi thay thế #include <intrin.h> bằng cách thêm #include <x86intrin.h> thêm cờ vào gcc -msse2 và tất cả đã hoạt động.

Các vấn đề liên quan