当我为https://github.com/liuliu/ccv
中的文件运行make时,我遇到以下错误/usr/bin/ld: ../lib/liblinear.a(linear-static.o):
undefined reference to symbol '__cxa_pure_virtual@@CXXABI_1.3'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6:
error adding symbols: DSO missing from command line
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我的makefile如下:
include ../lib/config.mk
# CC += -g -fsanitize=address -fno-omit-frame-pointer # -fprofile-arcs -ftest-coverage
LDFLAGS := -L"../lib" -lccv $(LDFLAGS)
CFLAGS := -O3 -Wall -I"../lib" $(CFLAGS)
TARGETS = bbffmt msermatch siftmatch bbfcreate bbfdetect scdcreate scddetect
swtcreate swtdetect dpmdetect tld icfcreate icfdetect icfoptimize cifar-10
image-net cnnclassify aflw dpmcreate
all: libccv.a $(TARGETS)
clean:
${MAKE} clean -C ../lib ; rm -f *.o $(TARGETS)
$(TARGETS): %: %.o libccv.a
$(CC) -o $@ $< $(LDFLAGS)
libccv.a:
${MAKE} -C ../lib
%.o: %.c ../lib/ccv.h
$(CC) $< -o $@ -c $(CFLAGS)
config.mk如下:
CC := clang
AR := ar
NVCC :=
CUDA_OBJS :=
DEFINE_MACROS := -D HAVE_LIBPNG -D HAVE_LIBJPEG -D HAVE_FFTW3 -D HAVE_LIBLINEAR
-D HAVE_TESSERACT -D HAVE_AVCODEC -D HAVE_AVFORMAT -D HAVE_SWSCALE -D
USE_DISPATCH -D HAVE_SSE2 -D HAVE_GSL
prefix := /usr/local
exec_prefix := ${prefix}
CFLAGS := -fblocks -msse2 $(DEFINE_MACROS) -I${prefix}/include
NVFLAGS := --use_fast_math -arch=sm_30 $(DEFINE_MACROS)
LDFLAGS := -L${exec_prefix}/lib -lm -lpng -ljpeg -lfftw3 -lfftw3f -lpthread -llinear
-ltesseract -lavcodec -lavformat -lswscale -ldispatch -lBlocksRuntime -lgsl
-lgslcblas
我尝试过寻求开发人员的帮助(对大多数查询都有帮助),阅读make文件教程并搜索类似的问题,但仍然不明白需要做什么。
请帮忙。