我正在使用最初使用icpc构建的makefile构建一个大型项目,现在我需要使用g ++运行它。
当它编译使用openmp的文件时,它使用-c标志,并且不使用任何库,因此它最终是串行而不是openmp。我看到的所有示例都没有使用此-c标志。
有没有一些方法可以在没有链接的情况下编译,但是使用openmp?
编辑:
我一直在使用-lgomp标志(并且库位于库路径上):
g ++ -lgomp -c -w -O4 mainS.cpp
g ++: - lgomp:链接器输入文件未使用,因为链接未完成
编辑:我的老板在代码,makefile和文档中犯了几个错误。很抱歉浪费了你的时间,至少它花了我花费的5个小时= /
答案 0 :(得分:3)
您是否正在传递标志以启用OpenMP(IIRC,它类似于-fopenmp?如果您没有机会,编译器将忽略与OpenMP相关的原语并只生成序列代码。
我认为-c(即仅编译,不喜欢)与您的问题有任何关系。
答案 1 :(得分:-1)
也许documentation有帮助......