2015년 7월 20일 월요일

libstdc++ conflict

mingw 에서 g++ 로 컴파일 한 프로그램을 실행시키다 보면 "the procedure entry point __gxx_personality_v0 could not be located" 같은 메시지가 나오면서 실행이 안되는 경우가 있다. 이는 libstdc++ 이 mingw 가 깔려 있는 곳 외에도 Windows/System32 와 같은 곳에 다른 버전의 libstdc++ 이 있기 때문이므로 mingw 버전의 libstdc++ DLL 을 먼저 찾을 수 있도록 PATH 를 조정해 주면 해결할 수 있다.

2015년 7월 19일 일요일

C / C++ 개발 환경

Code::Blocks 에서 wxWidgets 개발 환경 설정

프로젝트 생성 시 wxWidgets Wizard 가 생성해 주는 것이 제대로 설정이 안되는 것 같다. http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef 내용을 참고하여 Include 디렉토리와 Library 들을 제대로 설정해 줘야 한다.

우선 wxWidgets 설치는 source installer 를 이용해서 설치한 다음 --enable-monolithic --disable-shared --enable-optimise --enable-accel --enable-dccache 옵션을 줘서 컴파일한다.

(모든 라이브러리는 개발물 배포의 용이성을 위해 static library 로 빌드하도록 한다.)

Include path 에 빌드된 라이브러리의 include 파일을 추가한다.


이후 library path 에 빌드된 라이브러리를 찾을 수 있도록 추가한다.


라이브러리 목록을 추가해 주어야 한다. (monolithic 라이브러리로 만들었는데 왜 다 링크해야 하는지는 모르겠다.) 추가로 windows 라이브러리도 참조해야 하기 때문에 필요한 것들은 다 추가해 준다.