并行程序不会

时间:2012-03-04 19:51:43

标签: c++ linux makefile openmp

我已经移动了一个在visual studio中工作和构建的并行程序。我正在使用c ++ 并编译intel编译器。我必须将项目移动到Linux机器并运行它。所以我制作了以下make文件。

parallel: main.o Node.o
    icpc -o parallel main.o Node.o

main.o: main.cpp
    icpc -c $(CONFIG) main.cpp

Node.o: Node.cpp
    icpc -c $(CONFIG) Node.cpp

clean:
    rm -f parallel *.o core core.*

CONFIG  = -openmp

但获得此输出。我无法弄清楚为什么它不能识别何时在Windows上工作。

main.cpp:(.text+0x4e): undefined reference to `__kmpc_begin'
main.cpp:(.text+0xa2): undefined reference to `__kmpc_global_thread_num'
main.cpp:(.text+0xb2): undefined reference to `__kmpc_ok_to_fork'
main.cpp:(.text+0xc9): undefined reference to `__kmpc_fork_call'
main.cpp:(.text+0xdb): undefined reference to `__kmpc_serialized_parallel'
main.cpp:(.text+0xfa): undefined reference to `__kmpc_end_serialized_parallel'
main.cpp:(.text+0x106): undefined reference to `__kmpc_ok_to_fork'
""                  ""                         '""             """

虽然我不认为这是我的项目所必需的。

http://bitbucket.org/pumphouse/disjoint-sets-serial-parallel

1 个答案:

答案 0 :(得分:4)

您没有与-openmp关联;将第二行更改为

 icpc $(CONFIG) -o parallel main.o Node.o
相关问题