对多个OpenMP函数的未定义引用

对多个OpenMP函数的未定义引用,openmp,Openmp,我试图编译一个openMP示例,但他拒绝编译“对'OSCR_init'的未定义引用、对'OSCR_getarg_int'的未定义引用以及其他几个函数。然后我在另一个文件夹中的文件OmpSCR.h中找到了这些函数,在其中搜索,发现这些函数是在外部定义的,我相信在omp.h中。我在示例源代码中包含了带有“include”的文件(已经包含OmpSCR.h),希望它能解决这个问题,但没有任何改进。我有omp.h,它是随操作系统提供的。这可能是版本冲突吗?我从OMPSCR_v2.0.tar.gz获得了示例

我试图编译一个openMP示例,但他拒绝编译“对'OSCR_init'的未定义引用、对'OSCR_getarg_int'的未定义引用以及其他几个函数。然后我在另一个文件夹中的文件OmpSCR.h中找到了这些函数,在其中搜索,发现这些函数是在外部定义的,我相信在omp.h中。我在示例源代码中包含了带有“include”的文件(已经包含OmpSCR.h),希望它能解决这个问题,但没有任何改进。我有omp.h,它是随操作系统提供的。这可能是版本冲突吗?我从OMPSCR_v2.0.tar.gz获得了示例文件,我应该怎么做

一个“未定义引用”错误意味着在链接时找不到函数的定义。标头中的声明(例如
omp.h
)不提供函数的实现;它只是告诉编译器函数存在于某个地方。您必须将程序与实际提供函数实现的库相链接


基本上,您只需要将程序链接到OpenMP库。实现这一点的方法取决于您使用的编译器和OpenMP实现,两者都没有指定,因此我无法提供详细信息。(但是,如果您碰巧正在使用GCC,您应该使用
-fopenmp
选项进行编译和链接。)

我正在使用-fopenmp和GCC,但它不起作用。有一个libgomp.so图书馆。我不知道这些函数是否存在。我现在能做什么?除了
-fopenmp
,你不需要任何东西;特别是,您不需要显式地链接到
libgomp.so
(这由
-fopenmp
暗示)。如果要在单独的步骤中编译和链接,请确保对这两个步骤都使用
-fopenmp