2010-09-04 13 views
7

Tôi đang xem thư viện mã nguồn mở (DDS, trình giải mã cầu đôi giả) trong bản phát hành mới nhất (2.1.1) bổ sung một số chức năng đa tác vụ rất hữu ích yêu cầu hệ thống Windows hoặc OpenMP (thực sự, phiên bản mới nhất đó thậm chí sẽ không biên dịch chút nào trên hệ thống không phải Windows mà không có hỗ trợ OpenMP đầy đủ! -). Ubuntu 10.4 có một gói có sẵn cho một phiên bản cũ hơn (1.1.9), bao gồm giao diện Python vào thư viện (pydds). Tôi đã đóng góp cho thượng nguồn từ lâu, nhưng tôi thực sự muốn sử dụng (và đóng góp một giao diện Python cho ;-) chức năng mới ... nhưng, cho rằng, tôi cần một trình biên dịch C và các thư viện hỗ trợ sẽ cung cấp cho tôi chức năng OpenMP ...!Làm cách nào tốt nhất để sử dụng OpenMP trên Mac OS X 10.5 và Ubuntu 10.4?

Thêm vào đó, tôi cần chúng trên cả Ubuntu 10.4 tốt Intel Mac cũ của tôi mà vẫn chạy Mac OS X 10.5 (để tránh mất khả năng tương thích với tốt cũ PowerPC Macs của tôi - nhưng tôi không cầm ra cho một cách để có được hỗ trợ OpenMP trên những PowerPC Mac quá, mặc dù tất nhiên tôi chỉ muốn ... những người dựa trên Intel sẽ đủ! -).

Tôi hoàn toàn có kế hoạch hack càng nhiều càng tốt (và đóng góp các bản vá ngược dòng khi tôi làm việc, như tôi đã thực hiện trên tất cả các mã nguồn mở mà tôi đã tấn công, bao gồm cả DDS trong quá khứ; -) trên DDS, pydds, và bất kỳ chức năng phụ trợ nào cho chúng, nhưng ... chính xác vì điều đó, tôi chỉ muốn tránh phải làm nhiều hơn "sơ bộ" hack để nhận hỗ trợ OpenMP (cho C) ở nơi đầu tiên trên nền tảng tôi cần nó! -).

Vì vậy, có (lý tưởng! -) mọi thứ tôi có thể chỉ apt-get install cho Ubuntu 10.4 và hình ảnh đĩa hoặc Darwinport hoặc bất kỳ thứ gì cho Mac OS X 10.5 ít nhất trên bộ vi xử lý của Intel, mà tôi có thể sử dụng để bắt đầu .. .? Tôi tất nhiên đã sẵn sàng để xây dựng từ nguồn, nguồn vá, vv, khi cần thiết, nhưng tôi không muốn , nếu tôi có thể tránh nó ... ;-).

+2

điều gì về 'sudo apt-get install gcc libgomp1'? – Anycorn

+0

@aaa, tôi đã cài đặt 'gcc' (4.4.3 mà đi kèm với ubuntu) - thư viện có kỳ diệu sẽ làm cho nó hỗ trợ OMP cụ thể '# pragma' mà nó hiện đang cảnh báo và bỏ qua ...? –

+0

có và sử dụng 'gcc -fopenmp' – Anycorn

Trả lời

5

Trên Mac OSX 10.5, có vẻ như -fopenmp không phải là tùy chọn hợp lệ (gcc phiên bản 4.0.1).

$ gcc -fopenmp foo.c 
cc1plus: error: unrecognized command line option "-fopenmp" 

Tuy nhiên, tôi đã có thể biên dịch và chạy trên 10.6 (phiên bản gcc 4.2.1). Vì vậy, có vẻ như các tùy chọn duy nhất của bạn là 1) nâng cấp lên 10.6 hoặc 2) biên dịch tùy chỉnh phiên bản gcc.

(Side Lưu ý: man page của gcc trên 10,5 không đề cập đến -fopenmp, nơi 10,6 không.)

+2

OpenMp chỉ được hỗ trợ trong gcc 4.2 trở lên. – db42

3

Theo đề nghị của Garrett Hyde, phiên bản gcc mà tàu với Mac OS 10,5 là quá cũ để có hỗ trợ OpenMP. Nhưng không có vấn đề.

Cài đặt MacPorts (http://trac.macports.org/wiki/InstallingMacPorts) - bạn sẽ cần phải cài đặt Xcode và sau đó X11, cả hai bạn vẫn có thể truy cập từ trang web của Apple nếu bạn vẫn chưa có phương tiện cài đặt của mình. Sau đó, khi macports được thiết lập, "sudo port install gcc45" (hoặc ít nhất 44) và chờ một thời gian để nó xây dựng gcc và tất cả các phụ thuộc của nó. Bất cứ điều gì gcc 4.4.x trở lên sẽ có hỗ trợ OpenMP 3.0 khá vững chắc. Và sau đó bạn nên được tốt để đi.

Như đã được chỉ ra trong các nhận xét, gcc cổ phiếu đi kèm với Ubuntu 10.4 cũng sẽ hoạt động ra khỏi hộp.