I get some errors while linking a small CUDA program that uses CUDA timer fucntions.
I’m using Fedora core 7 + Geforce 8800GTX with 100.14.11 series CUDA drivers. I’m able to run other CUDA programs that dont have timer functions.
Also, I’m able to compile and run “BandWidthTest” program in the CUDA_SDK.
tmpxft_00000bf8_00000000-8.i:(.text+0x6d53): undefined reference to cutCreateTimer' tmpxft_00000bf8_00000000-8.i:(.text+0x6d5e): undefined reference to
cutStartTimer’
tmpxft_00000bf8_00000000-8.i:(.text+0x6d9d): undefined reference to cutStopTimer' tmpxft_00000bf8_00000000-8.i:(.text+0x6da8): undefined reference to
cutGetTimerValue’
tmpxft_00000bf8_00000000-8.i:(.text+0x6df2): undefined reference to `cutDeleteTimer’
collect2: ld returned 1 exit status
Below is my Makefile:-
GCC_COMPILER = g++
GCC_COMPILER_FLAGS = -g -Wall
CUDA_COMPILER = nvcc
CUDA_COMPILER_FLAGS =
CUDA_INC_DIR = /usr/local/cuda/include
CUDA_LIB_DIR = /usr/local/cuda/lib
CUDA_SDK_INC_DIR = /usr/local/cuda_sdk/common/inc
CUDA_SDK_LIB_DIR = /usr/local/cuda_sdk/lib
CUDA_LIBS = -lcuda -lcudart
CUDA_SDK_LIBS = -lcutil
MISC_LIBS = -lm -lrt
INCS = -I$(CUDA_INC_DIR) -I$(CUDA_SDK_INC_DIR)
LIBS = -L$(CUDA_LIB_DIR) -L$(CUDA_SDK_LIB_DIR) $(CUDA_LIBS) $(CUDA_SDK_LIBS) $(MISC_LIBS)
TARGET = CpuToGpu
SRC_DIRS := .
SRC_FILES := $(foreach DIR, $(SRC_DIRS), $(wildcard $(DIR)/*.cpp))
OBJS := $(patsubst %.cpp, %.o, $(SRC_FILES))
CUDA_SRC_DIRS := .
CUDA_SRC_FILES := $(foreach DIR, $(CUDA_SRC_DIRS), $(wildcard $(DIR)/*.cu))
CUDA_OBJS := $(patsubst %.cu, %.o, $(CUDA_SRC_FILES))
all : $(TARGET)
echo All done
$(TARGET) : $(OBJS) $(CUDA_OBJS)
$(GCC_COMPILER) $(GCC_COMPILER_FLAGS) -o $@ $(LIBS) $^
%.o : %.cpp
$(GCC_COMPILER) $(GCC_COMPILER_FLAGS) -o $@ -c $(INCS) $<
%.o : %.cu
$(CUDA_COMPILER) $(CUDA_COMPILER_FLAGS) -o $@ -c $(INCS) $<
clean :
rm -f $(OBJS) $(CUDA_OBJS) $(TARGET)
echo Clean done