OpenMP là một thời gian chạy trình biên dịch và không phải là điều nền tảng.
tức là. Nếu bạn biên dịch ứng dụng của mình bằng Visual Studio 2005 hoặc cao hơn, thì bạn luôn có sẵn OpenMP khi thời gian chạy hỗ trợ nó. (và nếu người dùng cuối không cài đặt thời gian chạy Visual Studio C, thì ứng dụng của bạn sẽ không hoạt động).
Vì vậy, bạn không cần phải lo lắng, nếu bạn có thể sử dụng nó, nó sẽ luôn ở đó giống như các hàm như strcmp. Để đảm bảo rằng họ có CRT, bạn có thể cài đặt studio trực quan có thể phân phối lại.
chỉnh sửa:
ok, nhưng GCC 4.1 sẽ không thể để biên dịch ứng dụng OpenMP của bạn, vì vậy vấn đề không phải là máy tính mục tiêu, nhưng trình biên dịch mục tiêu. Vì tất cả các trình biên dịch đều có các macro được xác định trước cho phiên bản của chúng, hãy gói các cuộc gọi OpenMP của bạn bằng các khối #ifdef. ví dụ: GCC sử dụng 3 macro để xác định phiên bản trình biên dịch, __GNUC__, __GNUC_MINOR__ and __GNUC_PATCHLEVEL__
Vui lòng xem câu trả lời của Andrew. Điều tốt nhất tôi có thể nói, anh ấy là người duy nhất thực sự trả lời câu hỏi (và đã làm đúng). Xem thêm [Preprocessor định nghĩa nào -fopenmp cung cấp?] (Http://stackoverflow.com/q/30803126) – jww