Hello,
I'm facing some porblems in using SystemC Verifcation Library, my codes just don't compile.
I'm using Ubuntu 14.04 (64 bits) and I followed the instructions on the INSTALL text file that comes with de SCV package.
I used: ../configure prefix=/usr/local/scv-2.0.0 with-systemc=/usr/local/systemc-2.3.1
(I've created the /usr/loca//scv-2.0.0 beforehand)
After the configuration: make & sudo make install
The installation finishes without errors.
The problems start when I try to use the library in codes. I add to my codes "#include<scv.h>" and add my makefiles looks like this:
CC = g++
INCDIR = -I. -I$(SYSTEMC)/include -I$(SCV)/include
LIBDIR = -L. -L$(SYSTEMC)/lib-linux64 -L$(SCV)/lib-linux64
LIBS = -lsystemc -lscv -lm
CFLAGS = -O2 -Wall -DDEBUG_SYSTEMC
TARGET = verification.x
SRCS = top.cpp
OBJS = $(SRCS:.cpp=.o)
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) -o $@ $(LIBDIR) $(LIBS) $(OBJS)
.cpp.o:
$(CC) $(CFLAGS) $(INCDIR) -c $<
clean:
@rm -f *.o $(TARGET)
Obs.: the environment variable SCV is previously set
Then when I run the make command I get the following (not the full output):
top.o:(.rodata._ZTV14scv_extensionsIcE[_ZTV14scv_extensionsIcE]+0x210): undefined reference to `_scv_extension_util::get_dynamic_data()'
top.o:(.rodata._ZTV14scv_extensionsIcE[_ZTV14scv_extensionsIcE]+0x218): undefined reference to `_scv_extension_rand_char::updated()'
top.o:(.rodata._ZTV14scv_extensionsIcE[_ZTV14scv_extensionsIcE]+0x220): undefined reference to `_scv_extension_rand_char::uninitialize()'
top.o:(.rodata._ZTV14scv_extensionsIcE[_ZTV14scv_extensionsIcE]+0x228): undefined reference to `_scv_extension_rand_char::initialize() const'
top.o:(.rodata._ZTV14scv_extensionsIcE[_ZTV14scv_extensionsIcE]+0x230): undefined reference to `_scv_extension_rand_char::is_initialized() const'
top.o:(.rodata._ZTV14scv_extensionsIcE[_ZTV14scv_extensionsIcE]+0x238): undefined reference to `_scv_extension_callbacks_char::remove_cb(int)'
top.o:(.rodata._ZTV14scv_extensionsIcE[_ZTV14scv_extensionsIcE]+0x260): undefined reference to `_scv_extension_rand_char::generate_value_()'
collect2: error: ld returned 1 exit status
make: *** [verification.x] Error 1
The error seems to come from a library linking problem, but to me it looks like the SCV libraries are linked correctly.
Does anyone knows what is going on?
Thanks in advance,
Eduardo.