Linux cuda nvcc編譯顯示 “對‘omp_set_num_threads’未定義的引用” 解決方法

最近在寫“並行程序設計”大作業時,用到openmp,但是總是報錯,信息如下

/tmp/tmpxft_0000269f_00000000-10_quicksort_ex.o:在函數‘main’中:tmpxft_0000269f_000000005_quicksort_ex.cudafe1.cpp:(.text+0x64c):對‘omp_set_num_threads’未定義的引用collect2: error: ld returned 1 exit status

遍查網絡,以爲碰到了什麼系統設置的問題,沒想到最後發現是cuda的nvcc編譯器的選項問題。
原先我編譯用的是linux終端命令輸入 nvcc quicksort_ex.cu -o quicksort_ex
但是openmp即便引入了omp.h文件,也還需要在最後編譯時加入下面的選項,才能編譯成功
nvcc quicksort_ex.cu -o quicksort_ex -Xcompiler “-fopenmp”

命令最後加入-Xcompiler “-fopenmp” 就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章