2012-10-04 37 views
6

Tôi đang cố gắng tìm hiểu OpenMP, bắt đầu với đoạn mã đơn giản sau đâyEclipse xây dựng cấu hình cho OpenMP

#include <stdio.h> 
#include <stdlib.h> 

int main(void) { 

    #pragma omp parallel 
    printf("Hello OpenMP!\n"); 

    return 0; 
} 

Đơn giản chỉ cần biên soạn từ dòng lệnh hoạt động:

cls ~/Desktop $ gcc -fopenmp HelloOpenMP.c -o HelloOpenMP 
cls ~/Desktop $ ./HelloOpenMP 
Hello OpenMP! 
Hello OpenMP! 

Tuy nhiên, tôi muốn sử dụng Eclipse với CDT. Tôi đã tạo cấu hình xây dựng mới "OpenMP" và cố gắng thêm cờ -fopenmp trong "Linh tinh", sao chép các cài đặt khác từ cấu hình xây dựng "Gỡ lỗi".

enter image description here

Việc xây dựng không thành công với

14:56:16 **** Incremental Build of configuration OpenMP for project HelloOpenMP **** 
make all 
Building file: ../src/HelloOpenMP.c 
Invoking: GCC C Compiler 
gcc -O0 -g3 -Wall -c -fmessage-length=0 -fopenmp -MMD -MP -MF"src/HelloOpenMP.d" -MT"src/HelloOpenMP.d" -o "src/HelloOpenMP.o" "../src/HelloOpenMP.c" 
Finished building: ../src/HelloOpenMP.c 

Building target: HelloOpenMP 
Invoking: MacOS X C Linker 
gcc -o "HelloOpenMP" ./src/HelloOpenMP.o 
Undefined symbols for architecture x86_64: 
    "_GOMP_parallel_end", referenced from: 
     _main in HelloOpenMP.o 
    "_GOMP_parallel_start", referenced from: 
     _main in HelloOpenMP.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 
make: *** [HelloOpenMP] Error 1 

Vì vậy, tôi đoán đây không phải là nơi thích hợp để thêm tùy chọn biên dịch -fopenmp? Tôi nên sử dụng cấu hình nào để xây dựng với OpenMP?

+2

không được có trong trình liên kết? Điều này liên kết 'gcc -o" HelloOpenMP "./Src/HelloOpenMP.o' hiện rằng thư viện openmp không được liên kết ở đây. – Raj

+0

Bạn nói đúng, thêm -fopenmp vào cờ liên kết đã khắc phục được sự cố. Không nhận ra tôi đã phải thêm cờ hai lần. – clstaudt

+0

Được rồi, tôi sẽ dán câu trả lời đó. – Raj

Trả lời

12

Thêm -fopenmp cờ vào phần trình liên kết.

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