1

我正在使用最初使用 icpc 构建的 makefile 构建一个大型项目,现在我需要使用 g++ 运行它。

当它编译使用 openmp 的文件时,它使用 -c 标志,并且不使用任何库,因此它最终是串行的而不是 openmp。我看到的所有示例都没有使用这个 -c 标志。

有什么方法可以在不链接但使用 openmp 的情况下进行编译?

编辑:

我一直在使用 -lgomp 标志(并且库位于库路径上):

g++ -lgomp -c -w -O4 mainS.cpp
g++: -lgomp: 链接器输入文件未使用,因为链接未完成

编辑:我的老板在代码、makefile 和文档中犯了几个错误。很抱歉浪费了你的时间,至少比我花在上面的 5 个小时还少 =/

4

2 回答 2

4

您是否传递了启用 OpenMP 的标志(IIRC 它类似于 -fopenmp?如果您不这样做,编译器将忽略与 OpenMP 相关的原语并仅生成串行代码。

我认为 -c (即仅编译,不喜欢)与您的问题没有任何关系。

于 2010-08-16T17:45:40.930 回答
-1

也许文档有帮助......

于 2010-08-16T17:56:23.277 回答