프로그래밍/C,C++

[Mingw] How to build wxFreeChart with wxWidgets(2.9.4)

채윤아빠 2013. 7. 15. 10:30
728x90
반응형


wxWidgets이 먼저 빌드가 되어 있어야만 한다. 이를 위하여 앞글 "
[Mingw] How to build wxWidgets."을 참고하라.


wxFreeChart 빌드하기

  • MSYS 창 실행
  • wxWidgets configure 실행
    $ cd /wx
    $ ./configure --enable-threads --enable-shared --disable-debug --disable-debug_flag --disable-debug_info --enable-graphics_ctx
    
    • enable-threads, enable_graphics_ctx 등은 반드시 활성화되어 있어야 wxFreeChart 빌드가 가능함
    • configure 후에, config.log 파일을 열어서 활성화가 되어 있는지 확인 필요
    • 활성화되지 않은 패키지가 있으면, configure --enable-XXX 를 통하여 강제 활성화
  • wxFreeChart configure 실행
    $ cd /wx/freechart
    $ mkdir release
    $ cd release
    $ ../configure --with-wxdir=C:\\wx
    
  • Makefile 수정하기

    • BK_DEPS 부분은 주석 처리
    • WX_CXXFLAGS : -I 경로 옵션으로 wx/include 의 상대경로 지정 ; -I../../include
    • WX_CXXFLAGS : -DNDEBUG -DWXBUILDING -DHAVE_W32API_H 추가
    • WX_LIBS : -L 경로 옵션으로 wx/lib/gcc_dll 상대경로 지정 ; -L../../lib/gcc_dll
    • WX_LIBS : -l 라이브러리 이름 수정 ; -lwxmsw29u_core -lwxmsw29u_aui -lwxbase29u
      • configure / make로 빌드하여 생성되는 이름과 mingw32-make -f makefile.gcc로 생성되는 파일 이름이 다름
      • configure / make = -lwx_mswu_core-2.9 -lwx_baseu-2.9 -lwx_mswu_aui-2.9
  • wxFreeChart Build ; mingw32-make
  • Demo 동작 확인 ; <<freechart>>/sample

    • 몇 가지 DLL 파일들을 복사해 주어야만 정상적으로 동작 가능
      • mingw dll : libgcc_s_dw2-1.dll, libstdc++-6.dll
      • wxWidgets dll : wxbase294u_gcc_custom.dll, wxmsw294u_aui_gcc_custom.dll, wxmsw294u_core_gcc_custom.dll
      • wxFreeChart dll : wxcode_mswu_freechart-2.9.dll

참고자료

  • Compiling wxWidgets with MSYS-MinGW from http://wiki.wxwidgets.org/
    • MSYS에서 configuration 및 make를 통하여 build는 성공적임
    • wxWidget 프로젝트를 Build하여 실행하면 오류가 발생함 ; 원인불명. ㅠ.ㅠ
    • 차후에 재도전 필요 ; configure / make 하는데 시간이 너무 오래 걸림. ㅠ.ㅠ
  • WxWidgets Build Configurations from http://wiki.wxwidgets.org/
    • mingw32-make 를 이용하여 <<wx-path>>/build/msw/makefile.gcc 파일로 빌드 ; release/debug
    • mingw32-make는 MSYS에서 실행은 되나, 폴더 구조가 연동이 되지 않는 문제가 있음
    • 문제점 : /wx/lib 등은 정상적인 폴더로 인식하지 못함
    • Makefile 등에서 경로를 지정할 때, 반드시 make 하는 폴더를 기준으로 상대적인 경로로 지정해야 함
  • Optimize Options GCC
    • -O0, -O2 등의 의미 파악