单独编译.cu文件,.c文件和main.cpp文件,并使用makefile链接在一起

时间:2016-03-18 20:47:43

标签: c++ makefile undefined

这是我的makefile的样子,我有seperata cudaex.cu cudaaex.h plotter.c plotter.h和mainfn.cpp文件。我分别编译和创建了.o文件。但我无法链接它们并制作一个可执行文件。如果需要进一步的信息,我也可以发布其他代码。

CUDA ?= /usr/local/cuda
CUDA_LIB :=-L $(CUDA)/lib64 -L $(CUDA)/lib -L /usr/lib64/nvidia -L /usr/lib/nvidia
CUDA_INC += -I $(CUDA)/include

program_INCLUDE_DIRS := ./src
program_LIBRARY_DIRS :=

LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))

LDFLAGS  += $(CUDA_LIB) -L $(CUDA)/lib64 
LIBS     += -lcudart -lcuda -lpthread -ldl



CC      = gcc
NCC     = nvcc
CPP     = g++
CFLAGS  = -O3 -I./src
RM      = rm -f



program_OBJS:= gnuplot_i.o cudaex.o plotter.o mainfn.o



default:    gnuplot_i.o cudaex.o plotter.o mainfn.o all

gnuplot_i.o:    src/gnuplot_i.c src/gnuplot_i.h
    $(CC) $(CFLAGS) -c -o gnuplot_i.o src/gnuplot_i.c

cudaex.o: 
    $(NCC) -c -o cudaex.o cudaex.cu

plotter.o:  plotter.c gnuplot_i.o plotter.h
    $(CC) $(CFLAGS) -c -o plotter.o plotter.c

mainfn.o:   mainfn.cpp cudaex.h plotter.h plotter.o gnuplot_i.o
    $(CPP) -c -o mainfn.o mainfn.cpp



all: mainfn

mainfn: $(program_OBJS)
        g++ $(program_OBJS) -o mainfn $(LDFLAGS) $(LIBS)


clean:
    $(RM) gnuplot_i.o cudaex.o plotter.o mainfn.o mainfn

this is the output of the make command

0 个答案:

没有答案