티스토리 뷰
wxWidgets 비주얼 스튜디오 2017에서 설치하고 창띄우기
고기상추밥 2018. 11. 21. 16:02qt와 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(50, 50), wxSize(450, 340)); 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
추가 하시면 됩니다
다시실행!!
성공!!!!!!!!!!!!!!!!!!!!!!!!!!
성공하셨나요? 행운을 빕니다
'wxWidgets with VS 2017 > 3.0.4 Stable Relase' 카테고리의 다른 글
wxWidgets VS2017 기준 설치 세부사항 (0) | 2018.11.24 |
---|---|
wxWidgets po파일 로딩해서 다국적 프로그램 만들기 (0) | 2018.11.23 |
wxWidgets Hello World 코드분석 (0) | 2018.11.22 |
- Total
- Today
- Yesterday
- Generic()
- C11
- #C
- JS
- C
- SCSS @for
- 1000 자리 계산기
- xgettext
- fyling fly
- 도매인 가격비교
- flying bee
- dropdown list
- css slider
- HTML
- 오류
- scanf()
- responsive slider
- Visual Studio 2017
- CSS
- stdarg.h
- wxWidgets
- gettext
- #비주얼스튜디오
- C++
- _Generic()
- scss slider
- 도메인 가격비교
- .editorconfig
- slider
- CSS 슬라이더
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |