흐르는 시간의 블로그...

현재 운영중인 시스템에서 poco library의 log시스템을 사용한다.

c++14를 사용하기 위해 최근 GCC를 5.4버전으로 올렸다.

그 과정의 수많은 삽질이 있었다. Linux를 잘아는 천과장이 아니었으면 지금도 미궁을 헤메고 있었을듯... :(


우쨋거나 GCC 5.4 업버전 이후 또 다른 문제에 봉착했다.

poco library가 정상 작동을 하지 않았다.

혹시 하는 생각에 poco-1.7.4로 업버전 하여 컴파일하여 install 하였다.

여전히 안된다.


configure를 살펴봐도 gcc 관련 내용은 없다.

여기저기 뒤져보다가 make file을 살펴보니 다름과 같은 라인이 보인다.


include $(POCO_BASE)/build/config/$(POCO_CONFIG)


시스템상 관련 파일은 ./build/config/Linux 이다

해당 부분에서 현재의 gcc5.4의 관련 부분으로 수정하여 컴파일 했더니 문제 없이 넘어가게 되었다.


#
# $Id: //poco/1.4/build/config/Linux#2 $
#
# Linux
#
# Make settings for Linux 2.6/gcc 3.3
#
#

#
# General Settings
#
LINKMODE ?= SHARED

#
# Define Tools
#
#CC      = ${CROSS_COMPILE}gcc
#CXX     = ${CROSS_COMPILE}g++
CC      = /opt/rh/gcc-5.4.0/bin/gcc
CXX     = /opt/rh/gcc-5.4.0/bin/g++


원래 나던 링크 에러 문제...


ubirloader.cpp:(.text+0x20a): 
undefined reference to `Poco::FileChannel::setProperty(std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >  std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status