【发布时间】:2013-12-25 07:06:51
【问题描述】:
我正在尝试分别编译一个 CUDA 文件和一个 MPI 文件,然后将它们链接在一起。代码文件如下:
stras.h
void pr(void);
stras.cu
#include "stras.h"
//..
void pr(){
printf("ok");
}
//...
mm_mpi.c
//..
#include "stras.h"
pr();
//..
制作文件
# Location of the CUDA Toolkit binaries and libraries
CUDA_PATH ?= /usr/local/cuda-5.0
CUDA_INC_PATH ?= $(CUDA_PATH)/include
CUDA_BIN_PATH ?= $(CUDA_PATH)/bin
CUDA_LIB_PATH ?= $(CUDA_PATH)/lib
# Common binaries
NVCC ?= $(CUDA_BIN_PATH)/nvcc
GCC ?= g++
# MPI check and binaries
MPICC = /usr/bin/mpicc
# OS-specific build flags
LDFLAGS := -L$(CUDA_LIB_PATH) -lcudart
CCFLAGS := -m32
# Target rules
all: build
build: stras
stras.o: stras.cu
$(NVCC) -o $@ -c $<
main.o: mm_mpi.c
$(MPICC) -o $@ -c $<
stras: stras.o main.o
$(MPICC) $(CCFLAGS) -o $@ $+ $(LDFLAGS)
run: build
./stras
clean:
rm -f stras.o main.o
但它给了我错误:
/usr/local/cuda-5.0/bin/nvcc -o stras.o -c stras.cu
/usr/bin/mpicc -o main.o -c mm_mpi.c
/usr/bin/mpicc -m32 -o stras stras.o main.o -L/usr/local/cuda-5.0/lib -lcudart -I
main.o: In function `main':
mm_mpi.c:(.text+0x6a3): undefined reference to `pr'
collect2: ld returned 1 exit status
make: *** [stras] Error 1
我对 C/C++ 不是很精通。如果我错过了什么,谁能告诉我?提前致谢。
【问题讨论】:
-
@Bit Fiddleing Code Monkey - 如您所见,我已经添加了它。标准包含后,这是第一个#include
标签: c++ c cuda mpi header-files