未定义的符号引用' __ cxa_pure_virtual @@ CXXABI_1.3'

时间:2015-01-10 12:14:11

标签: compilation makefile ubuntu-14.04

当我为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文件教程并搜索类似的问题,但仍然不明白需要做什么。

请帮忙。

0 个答案:

没有答案