저번의 실패이후엔 내가 왜 이짓을 하지 싶었다. 귀차니즘만 늘어서. 리눅스에선 잘만 되니까 정말로 필요한 때까진 미루기로 했다. 그리고 Filezilla처럼 wxWidget으로 프로그래밍을 하되, 리눅스에서 윈도우쪽으로 크로스컴파일하는 프로젝트도 있고 (!! - Filezilla에서 about 창을 한번 띄워보라)
근데 사실 크로스컴파일이 쉬운건 아니다. 이것도 몇번 해보다가, Arch에선 mingw32-gcc 가 설치가 안 돼서 대충 하다 말기도 했다.
다행인 것은 CodeBlocks 13.12가 나왔다는 것이다. 오호홋! 그래서 재시도 해보았다.
wxWidgets는 2.8.11이다. 아직은 이쪽이 리눅스에서도 대세니까.
http://forcecore.tistory.com/919
http://forcecore.tistory.com/1297
예전에 한게 있긴 하고, 이전에 하다 실패한것도 있다.
http://wiki.codeblocks.org/index.php?title=Compiling_wxWidgets_2.8.6_to_develop_Code::Blocks_(MSW)
이번에 참고하는 가이드는 위 글이다.
CodeBlocks는 codeblocks-13.12mingw-setup-TDM-GCC-481.exe 로 받아서 설치했다. 왜? 저번의 경험상 TDM-GCC는 아무 이유 없이 실패할 확률이 적으니까. 버그가 있어서 용량이 큰 것을 컴파일하면 mingw버전은 실패할 우려가 있다.
아래의 두 곳을 PATH에 등록했다. (http://forcecore.tistory.com/280 대로 하라)
C:\Program Files\CodeBlocks\MinGW\bin
C:\Program Files\CodeBlocks\MinGW\mingw32\bin
이제, wxWidgets 를 컴파일 할 차례. (컴파일 안 하면 dll파일 자체가 없어서 윈도그에서 못 굴린다)
C:\wxWidgets-2.8.12\build\msw 에 들어간다.
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release
를 했다. 그랬더니 허무하게도 그냥 쉽게 성공하고, Code::Blocks에서 hello world급의 프로그램을 (위저드 실행하면 만들어주는 기본 프로그램) 쉽게 돌릴 수 있었다. 이전에 귀찮게 고생했던건 뭐지;;; 그냥 안 되니까 안 되었다 라고 밖에 설명할 수 없다.
BUILD=release 부분을 BUILD=debug 로 바꾼 것도 빌드했다.
Code::Blocks에서도 프로젝트를 생성할 때 위에서 빌드한 것을 잘 인식할 수 있도록 MONOLITHIC, shared, unicode를 신경써서 잘 찍어서 사용해야 한다.