nana 모던 c++ gui 도움요청합니다
글쓴이: vivisection / 작성시간: 목, 2016/01/28 - 8:59오전
http://nanapro.org/en-us/
여기에서 다운받고, 압출풀고 makefile 로 libnana.a 만들었습니다
// test.cc #include <nana/gui.hpp> int main() { using namespace nana; form fm; drawing{fm}.draw([](paint::graphics& graph){ graph.string({10, 10}, L"Hello, world!", colors::red); }); fm.events().click(API::exit); fm.show(); exec(); }
위처럼 테스트용 소스파일을 만들고 컴파일옵션을
g++ test.cc -o a.exe -std=c++11 -m32 -mwindows -I"c:/nana/include" -L"c:/nana/build/bin" -lnana
위처럼 해서 컴파일 했는데
잘 됩니다
근데 a.exe파일 용량이 52MB 가 되는데 어디서 잘못된건지 모르겠습니다
도움요청합니다
(링크만 주루룩 올리는 이상한 답변좀 안달렷으면 합니다)
Forums:
strip 으로 한번 솎아내면 어떨까요?
strip 으로 한번 솎아내면 어떨까요?
-s 옵션을 추가해주니
사이즈가 2.5MB 로 줄었습니다
다운로드하신 makefile 은 디버그 심볼을
다운로드하신 makefile 은 디버그 심볼을 포함하여 컴파일 '-g' 하도록 되어있어서 그렇습니다.
여기에 제가 빌드한 결과를 올립니다. 참고로 하세요.
_s.exe 로 끝나는 실행파일은 디버깅심볼을 strip 한 것입니다.
Release 로 컴파일 한것도 strip 하니 사이즈가 줄어드는군요.
사용한 컴파일러 g++ 버전은 5.3.0 (MSYS2) 이며,
가장 아래에 있는 것은 MSVC 컴파일러 (cl ver.19) 로 컴파일 한 것입니다.
여담으로...
nana 라이브러리 사용할만 하신가요?
소스를 잠깐 보니 하부 GUI 프레임워크를 손쉽게 갈아치울수 있도록 작업이 되어 있지 않은것으로 보이네요.
그냥 윈도우냐 아니냐에 따라 프리프로세서에 의해 선택적 컴파일되도록 하드코딩? 되어 있는것 같습니다. (적어도 현재는...)
nana 프레임워크가 하부구조랑 분리되는 구조를 갖는것이 nana 개발 로드맵에 있는지 모르겠습니다만..
library 만 대충 훝어보면서 테스트해본
library 만 대충 훝어보면서 테스트해본 정도인데..
library 에서 c++11 문법을 사용하고, 지원하는게 좀 미흡하고, ... 그정도입니다
하부 gui 갈아치우는건 어떻게 하는건지 모르겠습니다
xml, json 같은거 쓰려면 다른 라이브러리 또 불러와야되고, socket, odbc 같은거 쓰려면 win32api 불러와야합니다
아직은 child control(widget) 용 라이브러리인것 같습니다
사용할만 하냐고 하신 질문에는 음.....
아직 만들어본 프로그램이 없어서 확답은 못드리겠는데
작은 규모의 프로젝트에선 사용할만 할 것 같습니다
그래서 지금 하는 프로젝트들 중에 작은거 하나를 이걸로 할 계획인데 이게 잘 안되면 망합니다
회사가 망하는게 아니라 제 스케쥴이 망합니다
댓글 달기