처음 목표가 wxwidget  으로 윈도우와 리눅스에서 모두 돌릴 수 있는 프로그램을 만든는 것입니다. 여기에 가장 적합한 GUI 가 wxwidget 으로 판단했습니다. 여기에 가장 적합한 방법이 codeblock이 윈도우즈와 리눅스에서 모두 실행가능한 프로그램이기 때문에 이를 이용하는 방법입니다. 가장 좋은 방법은 윈도우즈에서 만든 프로젝트 그대로 우분투에서 컴파일 가능하다면 좋겠지만, 이게 그대로 되지 않아서 약간의 설정이 필요합니다. 그 방법을 찾아 보도록 합시다.

 가장 쉬운 방법은 운분투에서 새로운 프로젝트를 만든 후, 이 프로젝트에 파일만 끼어 넣는 형태입니다. 그런데, 가장 원시적인 방법일 뿐더러, 지속적으로 하기에는 힘든 부분이 있습니다. 그래서 어떻게 설정을 수정하는 방법으로 컴파일 가능하게 할 수 있는지 테스트 해봤습니다.
 
 그 결과 아래와 같은 방법으로 가능하다는 것을 확인 했습니다.


 우선, 윈도우즈에서 wxwidget 프로젝트를 간단히 만들어 본니다. GUI Builder 는 없고, Application Type 은 Dialog Base 로 했습니다. 나머지는 모두  default 로 설정합니다.
사용자 삽입 이미지
컴파일 후, 실행해 보면 이 처럼 기본적이 창이 뜹니다.

이 프로젝트 자체를 우분투로 가져와서 불러업니다.
그리고 rebuild 해 보면 안됩니다.
-------------- Build: Debug in wxwidget_test ---------------

Skipping file (no compiler program set): resource.rc
Compiling: wxwidget_testApp.cpp
cc1plus: error: unrecognized command line option "-mthreads"
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
 -------------------------------------------------------
-mthreads 라는 옵션을 인식하지 못한다고 나옵니다.
인터넷에 찾아 보니 mingw 에서만 사용하는 옵션이라고 합니다. 이런 식으로 windows 용 codeblocks 에서 defualt 로 생성한 프로젝트와 우분트에서 사용하는 옵션의 차이가 발생합니다.
이를 잡아주는 작업이 필요하다. 이를 어떻게 잡아 줄 수 있을까??

간단하게 생각해본다면 우분투의 codeblocks 에서도 같은 프로젝트를 하나 만든 다음, 두 속성을 비교하는 방법을 사용하면 됩니다. 그러한 방법을 사용해서 속성을 맞추어 보면 아래와 같은 방법이 나옵니다.  아래 방법은 컴퓨터 환경에 따라 다르겠지만, 이 같은 개념을 사용해서 설정한다면 아래 같은 방법이 안 통한다고 해도 다른 환경에서도 컴파일 가능하리라 생각됩니다.

 빌드 옵션을 설정하는 곳에서
사용자 삽입 이미지

왼쪽에 Debug , Release 를 선택할 수도 있고 프로젝트 명을 선택할 수도 있습니다. 프로젝트 명을 선택할 경우, target(Debug 나 Release) 과 상관없이 공통적으로 환경설정을 할 수 있습니다.
왼쪽 화면에서 프로젝트 명을 선택 한 후, Compiler Settings 탭의 Other options 과 #defines 을 보면 윈도우즈에만 적용되는 것이 나옵니다. 이를 지워줍니다.
Other options 에서는 -mthreads 를 지우고, `wx-config --cflags` 를 추가 합니다.
 #defines  에서는 __GNUWIN32__ , __WXMSW__ 를 지웁니다.
Linker Setting 에서는 Other Linker Option 에 `wx-config --libs` 를 추가합니다.
그리고 왼쪽에 target 을 설정하는 곳(Debug 와 Releas)을 클릭해서 모든 target 에 대해서 추가되어 있는 Link Library  를 삭제합니다.

이를 수정하고 다시 빌드하면
dlg->SetIcon(wxICON(aaaa)); // To Set App Icon
이 곳에서 에러가 발생하는데, 이 부분을 지우고 다시 빌드 하면 컴파일 성공합니다.
아이콘 설정하는 부분은
리소스 파일에
aaaa ICON "wx/msw/std.ico"
이렇게 되어 있는지라, 윈도우즈 디렉토리 임으로 오류가 발생합니다. 이를 주석 처리해서 빌드해서 실행화면 리눅스에서도 정상적으로 보이게 됩니다.


이 방법으로도 뭔가 부족함이 느껴집니다. 가장 확실한 방법은 리눅스용 target 을 추가 하는 방법으로 보이며
이에 대해서 테스트 중입니다. 이에 대해서도 올리도록 하겠습니다.