`omp_get_max_threads_`的未定义引用问题

57
我尝试编译一个项目时出现以下错误: (使用gfortran的Fortran语言) 未定义的引用 `omp_get_max_threads_' 未定义的引用 `omp_get_thread_num_'
问题在于,我的GCC版本是4.4.3,本应支持OpenMP。
3个回答

100

使用gcc编译时,需要使用-fopenmp进行编译和链接以启用OpenMP。其他编译器有不同的选项。例如,在intel编译器中,需要使用-openmp;在pgi编译器中,需要使用-mp等。


哇,你说得对,我刚刚忘记在makefile中添加它了,我简直不敢相信哈哈... - GennSev
3
Intel编译器的更新版本已经弃用了该选项,而采用了“-qopenmp”选项。 - Jorge Bellon
1
没错,但是你如何将 -fopenmp 标志传递给像 CLion 或 Xcode 这样的 IDE 呢? - lrthistlethwaite
4
CLion使用CMake,将以下内容添加到配置文件可以生效:set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")。 这只是针对C语言的设置,对于C++需要使用CMAKE_CXX_FLAGS。 - Jindra

22
代码需要使用-fopenmp编译。

3

gcc -program.c -o obj -fopenmp


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接