티스토리 뷰



qt와 wxWidgets 중 뭐를 공부할까 고민하다가

무료의 성격이 강한 wxWidgets을 공부하기로 결심했습니다.

(qt도 무료라고 하던데 뭔가좀 라이센스 관련해서 복잡해보여서)

qt가 최강인건 인정합니다, 그치만 가난한 저는 wxWidgets 합니다.


wxWidgets를 비주얼스튜디에오 설치하고 창을 띄우는 방법에대해 알아 보겠습니다.

wxWidgets는 게임설치하듯이 원클릭으로 클릭해서 자동으로 되는게아닙니당.

wxWidgets 라이브러리 파일을 다운받아서

각각의 시스템환경에 맞게 빌드를 한뒤

비주얼 스튜디오에서 환경변수를 잡아준후

라이브러리들이 인클루드되게 파일경로를 잡아주시면

사용가능해 집니다

cocos2dx설치와 약간 비스무리합니다.

성공하길 빕니다.


우선 wxWidgets을 다운받겠습니다.

아래에 주소로 들어갑니다


http://wxwidgets.org/downloads/



접속하면 위와같은 창이 뜹니다

2018년 11월 10일 기준

현재 버전은

Latest Development Release: 3.1.1과

Latest Stable Release 3.0.4 버전이 있습니다

첫번째 버전은 개발 실험 단계 이런거 같습니다

두번째 버전은 안정화된 버전이고요

중간에 오류다면 프로젝트 망합니다

두번째 버전인

Latest Stable Release 3.0.4 버전을 다운받겠습니다.

스크롤 쭉내리시면 보일겁니다



파랑색으로 하이라이트된부분

Windows Zip(30MB)

Windows 7z(16MB)

둘중하나를 다운받습니다


파일을 다운받은 모습입니다.

압축을 풉니다


압축을 해제한 모습입니다 폴더가 하나 생길겁니다

압축 파일을 폴더안에 넣어주고

압축이 풀려진 폴더를

C:\wxWidgets-3.0.4

주소가 이런식으로 되끔 C 드라이브안에 옮겨줍시다

폴더를 C 드라이브에 옮기셨으면 폴더를 더블클릭해서 안에 내용물을 봅시다

위에처럼 보이면 성공입니다.

위에서 Build 폴더를 더블클릭해서 들어갑니다

들어가면 위와같이 보이면 성공입니다.

그다음에

msw라는 폴더를 눌르셔서 들어갑니다


msw 들어가신다음에 스크롤 쭈우우욱 내려서

wx_vc12.sln을 찾아서 클릭합니다



클릭하면 저런 경고가뜹니다.

못보던 프로젝트인데 믿을만 한거냐고 물어보는겁니다

체크박스해제하고 오케이 눌러줍니다



그러면또 창이뜹니다

프로젝트가 옛날 비주얼스튜디오에서 만들어진거라

비주스튜디오 최신버전에 맞게 프로젝트 파일을 업그레이드 해야된다는겁니다

당근 OK 눌러 줍니다


진행중... 로딩바끝나면

Build를 진행하겠습니다



Build는 

32bit

Release Debug, DLL Release, DLL Debug

64bit

Release Debug, DLL Release, DLL Debug

이렇게 총 8가지 빌드가 있습니다

필요한 것만 빌드하시면 됩니다

저는 32bit Debug를 빌드하겠습니다


Build -> Build Solution 눌러줍시다



빌드 진행중

빌드가 성공하셨으면

다음으로 환경변수를 잡아주겠습니다.



윈도우 하단 왼쪽에 검색창에 환경변수라고 치시면 저런게뜹니다 눌러줍시다

눈치껏 찾아갑시다!

성공하셨으면 저런창이 뜰겁니다 하단에 환경변수(Environment Variables) 를 눌러줍니다

이런식으로 뜨면 성공입니다 중간에 New 버튼을 눌러줍니다



이런식으로 뜨면 성공입니다

빈칸을 채워 주겠습니다




변수이름에 

WXWIN

변수값에 

C:\wxWidgets-3.0.4

변수값은 wxWidgets 폴더가 있는곳의 주소를 가리켜야 합니다!



위와와 같이 WXWIN 환경변수를 잘추가하셨으면 성공입니다.


Visual Studio 를 모두 종료하고 새롭게 다시 시작합니다.



파일 -> 새로만들기 -> 프로젝트 로가신담에

새로운 프로젝트를 만들어 줍니다.


이런창이 뜨면

제일 아래쪽에 있는 Windows Desktop Wizard 눌러줍니다

원하시는 프로젝트 이름 정하시고 Ok 눌러줍니다



초기 설정이 이렇게 보이실껀데

아래처럼 바꿔줍니다.



Windows Application.exe 눌러주시고

Empty Project 눌러줍니다



빈프로젝트가 생셩 됬으면

Source Files -> 추가 -> 새로운 아이템  눌러줍니다



헤더파일을 추가합니다!



헤더파일을 추가한뒤 cpp 파일도 추가합니다!


헬로 월드 쌤플을 만들겠습니당

위의 코드는 무시하시고

생성하신 헤더파일에다가


원본은

https://docs.wxwidgets.org/3.0/overview_helloworld.html

가시면 있습니다.


다음과 같이 작성합니다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// wxWidgets "Hello world" Program
 
// For compilers that support precompilation, includes "wx/wx.h".
#include <wx/wxprec.h>
 
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
 
class MyApp : public wxApp
{
public:
    virtual bool OnInit();
};
 
class MyFrame : public wxFrame
{
public:
    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
 
private:
    void OnHello(wxCommandEvent& event);
    void OnExit(wxCommandEvent& event);
    void OnAbout(wxCommandEvent& event);
 
    wxDECLARE_EVENT_TABLE();
};
 
enum
{
    ID_Hello = 1
};
cs



cpp 파일도 위의 내용은 무시하시고


다음과같이 작성합니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "Header.hpp"
 
wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(ID_Hello, MyFrame::OnHello)
EVT_MENU(wxID_EXIT, MyFrame::OnExit)
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
wxEND_EVENT_TABLE()
 
wxIMPLEMENT_APP(MyApp);
 
bool MyApp::OnInit()
{
    MyFrame *frame = new MyFrame("Hello World", wxPoint(5050), wxSize(450340));
    frame->Show(true);
    return true;
}
 
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
    : wxFrame(NULL, wxID_ANY, title, pos, size)
{
    wxMenu *menuFile = new wxMenu;
    menuFile->Append(ID_Hello, "&Hello...\tCtrl-H",
        "Help string shown in status bar for this menu item");
    menuFile->AppendSeparator();
    menuFile->Append(wxID_EXIT);
 
    wxMenu *menuHelp = new wxMenu;
    menuHelp->Append(wxID_ABOUT);
 
    wxMenuBar *menuBar = new wxMenuBar;
    menuBar->Append(menuFile, "&File");
    menuBar->Append(menuHelp, "&Help");
 
    SetMenuBar(menuBar);
 
    CreateStatusBar();
    SetStatusText("Welcome to wxWidgets!");
}
 
void MyFrame::OnExit(wxCommandEvent& event)
{
    Close(true);
}
 
void MyFrame::OnAbout(wxCommandEvent& event)
{
    wxMessageBox("This is a wxWidgets' Hello world sample",
        "About Hello World", wxOK | wxICON_INFORMATION);
}
 
void MyFrame::OnHello(wxCommandEvent& event)
{
    wxLogMessage("Hello world from wxWidgets!");
}
cs


작성이 끝나면 이제

프로젝트에다가 라이브러리들의 파일경로를 잡아주겠습니다.



프로젝트에서 오른쪽 클릭하신 다음

제일 아래에 속성을 눌러줍니다



위와 같은 창이 뜬다면 파랑색으로 칠해진

VC++ Directories -> Include Directories 위치를 찾아냅니다



클릭하셔서 Edit 버튼 눌러줍니다


New Line 버튼을 눌러줍니다

제일 첫번째 아이콘 노랑색 빛나는 폴더 입니다



&(WXWIN)\include
&(WXWIN)\include\msvc

를 추가를 하셔서 위의 스샷과 똑같이나오면 성공한겁니다



아까전에 빌드하신 라이브러리의 파일경로를 잡아줄겁니다

파랑색 하이라이트된 부분 Library Directories에서

Edit 을 눌러줍니다


저런창이 뜬다면 성공

스샷을 자세히 보시면

↓ 이아이콘 밑에 ... 이런게 보입니다

그버튼을 눌러줍니다



폴더들이 보입니다

wxWidgets 3.0.4 폴더를 찾아서 눌러줍니다




위와같이 아까전에 제가빌드한 폴더가있네요 vc_lib 주소가 잡히도록

살짝 한번만 클릭하신뒤에 폴더선택 눌러줍니다


각각의 빌드별 폴더명은

32비트 Release Debug 는 vc_lib

32비트 DLL Debug DLL Release는 vc_dll

64비트 Release Debug 는 vc_x64_lib

64비트 DLL Release DLL Debug 는 vc_x64_dll


입니다.



주소가 잘 잡혔습니다


그다음으로 Linker-> Input -> Additional Dependencies(추가 존속성?) 가신다음에

빌드 구성(32bit release debug 64bit release debug)에 맞춰서

다음와 같은 라이브러리를 추가해야합니다

wxmsw30ud_core.lib
wxbase30ud.lib
comctl32.lib
rpcrt4.lib
winmm.lib
advapi32.lib
wsock32.lib
wxpngd.lib
wxzlibd.lib
wxjpegd.lib
wxtiffd.lib

위으 라이브러리들은 32비트 debug 에 맞춘겁니다

release 버전일 경우에는

wxmsw30u_core.lib

wxbase30u.lib

이런식으로 d를 빼서 해주시면됩니다


자세한내용

https://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide


실행해볼까요!!!!



이런 오류가뜹니당

오류내용은

1>------ Build started: Project: Project6, Configuration: Debug Win32 ------
1>Source.cpp
1>c:\wxwidgets-3.0.4\include\wx\wxcrt.h(487): error C3861: 'wxStrcoll': identifier not found
1>c:\wxwidgets-3.0.4\include\wx\wxcrt.h(487): note: 'wxStrcoll': function was not declared in the template definition context and can be found only via argument-dependent lookup in the instantiation context
1>c:\wxwidgets-3.0.4\include\wx\wxcrt.h(496): note: see reference to function template instantiation 'int wxStrcoll_String<const wchar_t*>(const wxString &,const T &)' being compiled
1>        with
1>        [
1>            T=const wchar_t *
1>        ]
1>Done building project "Project6.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


이렇습니다


걱정마세욤 해결책은 마련해뒀습니다


프로젝트-> 속성으로 가신뒤에

C/C++ -> Command Line ->  /permissive

추가 하시면 됩니다


다시실행!!


성공!!!!!!!!!!!!!!!!!!!!!!!!!!


성공하셨나요? 행운을 빕니다

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함