이번에는 윈도우즈에서 만든 codeblock 프로젝트를 전체적으로 변경하지 않고, target 을 추가해서 둘다 추가 할 수 있는 방법을 찾아 보도록 하겠습니다.

 저번과 마찬가지로 윈도우즈에서 default 로 프로젝트를 만듭니다. 그리고 빌드 후, 실행해봅니다. 이번에는 모든 설정을 윈도우즈에서 설정해서 리눅스에서는 확인만 하는 방법을 사용하겠습니다.

 project->Properties.. 를 선택하면 Project/targets options 창이 뜹니다. Build targets
사용자 삽입 이미지

에서 오른쪽 Build targets 새롭게 target 을 추가합니다. 모든 설정을 추가하기는 귀찮으므로 Duplication 을 이용해서 Debug 를 복사해서 Linux_Debug 를 만들고, Release 를 복제해서 Linux_Release 를 만듭니다. 그리고 기존에 있는 Debug 나 Release 는 Rename 버튼을 이용해서 Win_Debug, Win_Release 로 변경합니다.
 선택한 target 에 대해 설정할 수 있는 공간이 오른쪽에 있습니다. 각 target 에 맞게 Platforms 를 선택하도록 합시다. Win_Debug, Win_Release 는 Windows 로 Linux_Debug 와 Linux_Relase는 Unix 로 설정합니다. target 별로 object 와 exe 파일들을 따로 나오도록 설정할 수도 있습니다. 저의 경우, 이 기능이 필요 없기 때문에 설정하지는 않겠습니다. OK 버튼을 눌러서 나옵니다.

 이제는 Project->Build options.. 를 눌러  Project build option 창을 띄웁니다. 지난 번( [wxwidget] 08. 윈도우즈에서 만든 codeblock 프로젝트 Ubuntu 에서 컴파일 하기 ) 과 동일하게 Linux_Debug 와 Linux_Release 를 설정하면 됩니다. 프로젝트 전체적으로 설정되어 있는 설정에 대해서는 Win_Debug와 Win_Release 로 설정할 수 있도록 변경해야 합니다. 예를 들어 지난번에 윈도우즈 용이라서 지워라 했던 Compiler Settings 의  Other option  중 
-pipe
-mthreads
[[if (PLATFORM == PLATFORM_MSW && (GetCompilerFactory().GetCompilerVersionString(_T("gcc")) >= _T("4.0.0"))) print(_T("-Wno-attributes"));]]

 같은 설정은 Win_Debug와 Win_Release 에서만 동작하도록 수정합니다.

수정해야 하는 것들은
== compiler Settings 의  Other option  안의 내용 ==
-pipe
-mthreads
[[if (PLATFORM == PLATFORM_MSW && (GetCompilerFactory().GetCompilerVersionString(_T("gcc")) >= _T("4.0.0"))) print(_T("-Wno-attributes"));]]
==================================

== compiler Settings 의  #defines  안의 ==
__GNUWIN32__
__WXMSW__
====================================

== Search directory 의 Compiler 안의 디렉토리 ==
%WXWIN%\include
%WXWIN%\contrib\include
=======================================

== Search directory 의 Resource Compiler 안의 디렉토리 ==
%WXWIN%\include
====================================

그리고 target 을 복제 하면서 생긴 윈도우즈 설정도 지워주어야 합니다.
Linux_Debug 와 Linux_Release 각각에 대해서
Linker Settings 의 Link Library  를 제거해 줍니다.

추가로 리눅스에서 컴파일 가능하도록
Compiler Settings 의 Other options 에서 `wx-config --cflags` 를 추가 합니다.
Linker Setting 에서는 Other Linker Option 에 `wx-config --libs` 를 추가합니다.

이제 설정은 다 끝났습니다.

이 프로젝트를 우분투로 복사해서 리빌드 해 봅니다.
이번에도 역시 dlg->SetIcon(wxICON(aaaa)); // To Set App Icon
라는 곳에서 빌드 오류가 발생하는데 이벤에는
#ifdef __WXMSW__
   dlg->SetIcon(wxICON(aaaa)); // To Set App Icon
#endif
같은 방법으로 우분투만 동작하지 않도록 설정합니다.