用mpicc编译非mpi库

问题描述 投票:-1回答:1

我想用自己的库编译mpi。而且我不确定在gcc上使用的选项如-I / -L /是否适用于mpicc。

我正在尝试使用以下选项进行编译,但是我收到以下错误。

mpicc -I$(CURRENT_DIR)/util -I$(CURRENT_DIR) -L$(CURRENT_DIR)/util -o server server.c
mpicc -I./util -I. -L./util -o server server.c
/tmp/ccA5be6Z.o: En la función `main':
server.c:(.text+0x195): undefined reference to `list_create'
server.c:(.text+0x219): undefined reference to `list_add'
server.c:(.text+0x228): undefined reference to `list_count'
collect2: error: ld returned 1 exit status

这些是我的server.c包含的

#include <mpi.h>
#include <list.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

这是我的pwd / util文件夹

$ ls
list.c list.h list.o
...
c mpi mpich
1个回答
0
投票

mpicc(以及其他MPI构建命令)只是编译器之上的包装器。因此,如果您使用gcc,则可以使用所有gcc选项和指令。

关于OpenMPI,您可以使用--showme选项展示编译器和使用的选项。您可以在OpenMPI FAQ(https://www.open-mpi.org/faq/?category=mpi-apps#wrapper-showme-with-no-file)中查看详细信息。 MPICH(https://www.mpich.org/static/docs/v3.2.x/www1/mpicc.html)提供了类似的选项

您的问题与MPI无关。您只是缺少在链接步骤中添加一些对象(可能是list.o)。您应该考虑创建一个Makefile来简化构建过程。

© www.soinside.com 2019 - 2024. All rights reserved.