2015년 11월 10일 화요일

wxWidgets configure options

C++11 을 지원하기 위해 옵션을 변경하였다. (mac 은 이미 C++11 을 지원하고 있었던 듯)
  • Windows Option
    • --enable-monolithic --disable-shared --enable-optimise --enable-accel --enable-dccache CXXFLAGS="-std=c++11 -D__NO_INLINE__" OBJCXXFLAGS="-std=c++11 -D__NO_INLINE__"
  • Mac Option
    • --enable-monolithic --disable-shared --enable-optimise --enable-accel --enable-dccache CXXFLAGS="-stdlib=libc++ -std=c++11" OBJCXXFLAGS="-stdlib=libc++ -std=c++11" LDFLAGS="-stdlib=libc++"
Windows Option 중 -D__NO_INLINE__ 은 mingw 의 헤더 파일 버그 때문에 넣었다.

C++11 은 개뿔. 특정 플랫폼, 특정 컴파일러에서만 돌아가는 소스 코드를 만들지 않기 위해서는 C++11 을 쓰지 않는 것이 좋겠다는 결정을 내렸다. 예전부터 느꼈던 것이긴 하지만 C++ 은 참 애매한 녀석인 것 같다.

  • Windows Option
    • --enable-monolithic --disable-shared --enable-optimise --enable-accel --enable-dccache 
  • Mac Option
    • --enable-monolithic --disable-shared --enable-optimise --enable-accel --enable-dccache --with-macosx-version-min=10.7 CXXFLAGS="-stdlib=libc++ -std=c++11" OBJCXXFLAGS="-stdlib=libc++ -std=c++11" LDFLAGS="-stdlib=libc++"
참고로 아래 설명을 보면 GCC 에서 C++11 의 지원은 아직 실험적인 것 같다.

Important: GCC's support for C++11 is still experimental. Some features were implemented based on early proposals, and no attempt will be made to maintain backward compatibility when they are updated to match the final C++11 standard.

2015년 10월 19일 월요일

Champions of Conte

If you save up your units, yes you can have willpower and double edge. I haven't bothered....

Good setup:

Offense: (+10.5% crit rate, +52% crit dmg)
5 - precision
5 - Cruelty
1 - in all prereqs

Defense: (50% to resist block break)
5 - Stand your ground
1 or 4 - Perfect block
1 - in all pre-reqs
Optional: 3 salve, 3 recovery. (I haven't bothered yet)

Utility:
2 or 3 - dexterity (+20-33% increase in next attacks crit rate)
3 - pretrify
3 - pacify
3 - stupify
2 - Parry (stun duration increases with perfect block chance)
1 - pre-reqs


Do the offense first and use the stony cores for that. I did it without spending $0.01. Just save units from arena milestones, arena crystals, and completion/exploration awards.
FYI - always open arena crystals in batches of 10,20, or 30. If you open 10 at a time (20K battle chips), and press the open button, you will always get 15-75 units.

2015년 10월 17일 토요일

codelite v.s. code::blocks

지금까지 code::blocks 가 가장 나은 cross platform ide 라고 생각했는데, 버전 업데이트가 늦고 아마도 codelite 로 분화하여 계속 발전해 온 것 같다. 이에 맞춰 앞으로 code::blocks 에서 codelite 로 ide 환경을 바꿔서 개발하도록 할까 한다.

2015년 10월 16일 금요일

Mac 에서 wxWidgets 빌드하기


  • 일단 3.0.2 stable 버전에서는 문제가 있어 github 에서 받은 버전으로 컴파일해서 사용한다
  • 윈도우 때 사용했던 configure 옵션
    • --enable-monolithic --disable-shared --enable-optimise --enable-accel --enable-dccache 
  • libc++ 버전 문제로 다음 옵션이 추가되어야 한다
    • --with-macosx-version-min=10.7 CXXFLAGS="-stdlib=libc++ -std=c++11" OBJCXXFLAGS="-stdlib=libc++ -std=c++11" LDFLAGS="-stdlib=libc++"

2015년 9월 20일 일요일

gmp compile

gmp 를 mingw32 에서 컴파일 할 때 64bit 환경에서 assembly 를 제대로 인식하지 못하는 경우가 있다. 이런 경우 configure 할 때 configure --disable-assembly 로 configure 를 하면 된다.
최종 적용된 옵션은 다음과 같다.

  • configure --disable-assembly --enable-cxx

2015년 8월 6일 목요일

2015년 7월 20일 월요일

libstdc++ conflict

mingw 에서 g++ 로 컴파일 한 프로그램을 실행시키다 보면 "the procedure entry point __gxx_personality_v0 could not be located" 같은 메시지가 나오면서 실행이 안되는 경우가 있다. 이는 libstdc++ 이 mingw 가 깔려 있는 곳 외에도 Windows/System32 와 같은 곳에 다른 버전의 libstdc++ 이 있기 때문이므로 mingw 버전의 libstdc++ DLL 을 먼저 찾을 수 있도록 PATH 를 조정해 주면 해결할 수 있다.

2015년 7월 19일 일요일

C / C++ 개발 환경

Code::Blocks 에서 wxWidgets 개발 환경 설정

프로젝트 생성 시 wxWidgets Wizard 가 생성해 주는 것이 제대로 설정이 안되는 것 같다. http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef 내용을 참고하여 Include 디렉토리와 Library 들을 제대로 설정해 줘야 한다.

우선 wxWidgets 설치는 source installer 를 이용해서 설치한 다음 --enable-monolithic --disable-shared --enable-optimise --enable-accel --enable-dccache 옵션을 줘서 컴파일한다.

(모든 라이브러리는 개발물 배포의 용이성을 위해 static library 로 빌드하도록 한다.)

Include path 에 빌드된 라이브러리의 include 파일을 추가한다.


이후 library path 에 빌드된 라이브러리를 찾을 수 있도록 추가한다.


라이브러리 목록을 추가해 주어야 한다. (monolithic 라이브러리로 만들었는데 왜 다 링크해야 하는지는 모르겠다.) 추가로 windows 라이브러리도 참조해야 하기 때문에 필요한 것들은 다 추가해 준다.


2015년 3월 17일 화요일

C / C++ 개발 환경

자바 언어가 사용하기엔 좋지만 항상 걸리는 점들이 있다. 첫번째는 자바는 JRE 환경이 필요하다는 저과 두번째는 오라클과 구글의 관계이다. 최근에 구글이 자바 관련 소송에서 졌기 때문에 자바의 입지가 그만큼 좁아졌다. 이에 따라 다시 한 번 C / C++ 개발 환경을 주 개발 환경으로 꾸며 보려고 한다.
이전에 정리한 것과 달라지는 것은 eclipse 에서 Code::Block 으로 바꾼 점이다. eclipse 역시 자바 기반으로 만들어진 툴이라 자바에 대한 의존성이 생기기 때문에 Code::Block 으로 바꾸기로 했다. GTK 를 GUI designer 없이 쓰는 것이 쉽지는 않아 보이나 성능 이슈도 있고 GUI designer 의 의존성을 버리기 위해 이렇게 하기로 했다.

GTK 와 wxWidgets 사이에선 wxWidgets 가 여러모로 우수한 것으로 보인다. 또한 GUI 프로그래밍을 C 로 한다는 것이 의외로 많은 문제를 가져오는 것 같다. 그래서 wxWidgets 를 C++ 환경으로 만들어 보는 것이 어떨까 싶다.

아마도 이런 환경에 익숙해지려면 좀 많은 시간이 필요할 것 같다.

2015년 2월 26일 목요일

winmail.dat / TNEF 포멧 제거 방법

Disabling TNEF in Outlook

The sender can avoid sending TNEF attachments by by turning off TNEF in Outlook. When Outlook is configured to send e-mail in "Outlook Rich Text Format", it may use TNEF. When it sends in "HTML" or "Plain Text", it uses standard, compatible formats. There are two options for disbling TNEF:
In at least Outlook 2002 (a.k.a. Outlook XP) and Outlook 2003, if it's being used at a business, the following is recommended to ensure compatibility with corporate mail systems:
  1. On the "Tools" menu, click "Options", then click the "Mail Format" tab, and then the "Internet Format" button.
  2. Set "When sending Outlook Rich Text messages to Internet ..." to either "Convert to HTML format" or "Convert to Plain Text format".

In all versions of Outlook, you can disable TNEF completely:
  1. On the "Tools" menu, click "Options", and then click the "Mail Format" tab.
  2. In the "Send in this message format" list, click "Plain Text" or "HTML", and then click "OK". 

원문은 위를 확인하면 되고, 아래와 같이 안내하도록 하자.

아래와 같이 Outlook 의 "도구" 메뉴에서 "메일" 메뉴에서 "작성할 메시지 형식" 을 HTML 로 설정해 주세요.