VC 라이브러리 리눅스 포팅 중 문제질문 입니다
작성자 정보
- 이동우 작성
- 작성일
컨텐츠 정보
- 2,016 조회
- 0 추천
- 목록
본문
안녕하세요
리눅스 포팅관련 질문을 드립니다.
VC에서 라이브러리 파일을 작성 하였으며, 라이브러리 파일내에 extern 변수를 선언해 놓았습니다
extern 변수는 main.cpp 에서 값을 넣었습니다.
이와같이 작성하여 Visual studio 6.0환경에서 정상적으로 사용하였습니다.
이 파일을 리눅스로 포팅하고자 하여,
리눅스 환경에서 *.lib 파일은 *.a 형식으로 라이브러리 파일로 생성 하였고,
~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~
PROGRAM = mips
CLEAN = *.vcd *.dump
SYSTEMC = systemc
SYSTEMC_ROOT = /usr/local/SyFi
CC = cpp
OBJ = o
SRCS = $(wildcard *.$(CC))
OBJS = $(SRCS:%.$(CC)=%.$(OBJ))
CXX = g++
CXXFLAGS = -DBRAM -DBROM -DBREG
RM = rm
$(PROGRAM): $(OBJS)
$(CXX) $(CXXFLAGS) $^ -L $(SYSTEMC_ROOT)/lib-linux/ -l$(SYSTEMC) -o $@
$(OBJS): $(SRCS)
$(CXX) $(CXXFLAGS) -I $(SYSTEMC_ROOT)/include/ -c $(@:%.$(OBJ)=%.$(CC)) -o $@
clean:; $(RM) -rf $(OBJS) $(PROGRAM) $(CLEAN) core.*
~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~
보시는 바와 같이 make 파일을 돌렸습니다.
하지만
~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~
..
..
..
/usr/include/endian.h:47:1: warning: this is the location of the previous definition
g++ -DBRAM -DBROM -DBREG add.o alu.o aluctrl.o branch.o ctrl.o decoder.o hazard.o imm2word.o main.o mux.o ram.o registerfile.o rom.o shift.o signextend.o -L /usr/local/SyFi/lib-linux/ -lsystemc -o mips
main.o(.gnu.linkonce.t._ZN7sc_core9sc_signalIN5sc_dt5sc_bvILi2EEEE6updateEv+0x13): In function `sc_core::sc_signal<sc_dt::sc_bv<2> >::update()':
: undefined reference to `sc_core::fault_active'
..
..
~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~
위와같이 라이브러리에서 extern 변수로 설정한 변수들이
Visual Studio 환경에서 했던거와 마찬가지로 main.cpp 에 할당해 주었지만 undefined reference to~~ 을 출력하고 있습니다.
무엇이 문제일까요?
끝까지 읽어 주셔서 감사합니다.
관련자료
-
이전
-
다음