并行程序不会成功

Parallel program wont make

本文关键字:成功 程序 并行      更新时间:2023-10-16

我移动了一个在visualstudio中运行和构建的并行程序。我正在使用c++以及在英特尔编译器上进行编译。我必须把这个项目移到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

但是得到这个输出。我不明白为什么它在窗口上工作时无法识别。

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

您没有链接到-openmp;将第二行更改为

 icpc $(CONFIG) -o parallel main.o Node.o