본문 바로가기

GCC

(23)
imebra 의 minGW 32bit pre-compiled library Free BSD project 중 쓸만한 DICOM read/write 라이브러리인 imebra 의 minGW 32bit 용 library 와 header, test code set 입니다. 2011년 4월 18일 밤 10시 48분 29초 빌드 소스를 이용해서 만들었습니다. imebra 공식 홈페이지 : http://imebra.com/ imebra Doxygen 홈페이지 : http://imebra.com/documentation/2011/html/main.html 사용법은 압축을 풀면 examples, include, lib, tests 폴더가 나옵니다. 이중 tests 는 QT lib 이 있어야 구동이 되는 것 이니 참조만 하시고, include 는 lib 에 있는 a 파일을 쓰기 위한 header..
WxWidget(v2.8.12) 와 CodeBlocks 연동 하기. 일단 이 글은 CodeBlocks 가 뭔지 알고, WxWidget 이 대충 뭔지는 아는 사람에게 유용한 글임을 먼저 밝히는 바 입니다. 사실 CodeBlocks 만 알고, WxWidget 을 모르는 경우가 더 맞는 말 이겠네요. 먼저, 프로젝트 생성시 WxWidget 이 기본으로 설정 안된 상태에서 다음과 같은 것이 뜹니다. Wx 의 환경변수를 맞춰 달라는 말 입니다. "멍-" 해 지죠. 이제 해야 할 것은 먼저 WxWidget 소스를 받아 오는 것 입니다. 2011년6월20일 기준, 마지막 릴리즈 버젼이 2.8.12 이니, 다음 위치에서 WxWidgets-2.8.12.zip 을 받습니다. (저는 WxX11 을 받았는데, 컴파일이 되더군요 .... 용량 차이가 조금 있던데 ..) 다음으로 해야 하는 것인..
MinGW 환경 C++ 에서 Thread 간편히 쓰기 위한 CustomThread 클래스! MinGW 으로 C++ 컴파일 해서 쓸시 , thread 처리를 위해 extern"C" 남발을 했던 기억이 있습니다. 아련한 기억인데 .. C++ 로 class 객체화를 하는데 있어 , thread 의 stdcall 함수 제작은 귀찮음의 걸림돌이 되었다고 생각 됩니다. 그래서 만들었던 것이 바로 이 CustomThread !!! 클래스 원형을 보면 다음과 같습니다. 그리고 실제 사용하는 입장에선 위의 클래스를 상속 받아, Setup 과 Execute(void*) 를 구현해 주면 되는 것 입니다. 예) 예제 소스는 CodeBlocks 로 만들어 졌습니다. 첨부 파일의 소스를 사용할 수 있으니 필요하신 분은 사용해 보시기 바랍니다. 본 소스는 공개로 만든 것 이므로 ,이 코드로 인해 발생하는 문제점은 제가 ..
DLL 에서 dllmain 이 호출 되지 않는다 !!! 언젠가 부터, 저는 DLL 을 minGW 에서 만듭니다. 하나의 소스로 Target 만 바꿔서 32bit, 64bit 모두 찍어 낼 수 있도록 환경을 만들어 쓰다 보니 이게 너무 편했던 것이죠. 그런데, 어느순간 제가 "정석" 을 따르고 있지 않음을 깨닫게 됩니다. 그 일이 이번에 DllMain() 함수가 불리지 않는다는 것. 이전에 C 코드를 짤떈 잘 쓰이던 것이 왜 이번에 이러지? 라는 의문이 든 것이 바로 이 결과 때문 입니다. 위 이미지만 봐서는 뭐가 문제인지 모를 것 입니다만 .. 아래 코드를 보겠습니다. 중요한 것은 바로 DllMain() 함수가 불리지 않는 다는것. 중복된 프로세스에서 사용되거나, 쓰레드에 사용될 경우 기본적인 처리를 해 줘야 할 DllMain() 이 호출 없이 사용된다는 점..
minGW x86-64bit, DLL 빌드시 libc++ 문제 해결. 현재, 일반적으로 사용할 수 있는 컴파일러 중 64bit Win32.PE 를 생성 할 수 있는 것은 minGW 말고는 없는 걸로 알고 있습니다. 상용 컴파일러 로는 뭐가 있는지 알수 없기 때문이기도 합니다만 -_-;; intel 같은데서 나오는 컴파일러는 64bit 를 지원 하겠죠. 하지만 범용적으로 쓰기엔 어려움이 있으므로, 저는 gcc 의 windows 판인 minGW 를 사용합니다. 릴리즈 버젼 4.5.5 를 현재 사용하고 있으며, OpenSource 로서 SourceForge 에서 개인 릴리즈 버젼으로 다운로드 받을 수 있습니다. 언제나 그렇듯 ... minGW 는 상용 컴파일러가 아니므로, 해당 컴파일러로 만들어진 바이너리가 오동작 해도 그에 대한 warranty 는 전혀 없습니다! 현재 64b..
CodeBlocks 에 minGW w64 컴파일러 붙이기. 대부분 숙련된 개발자가 아니고서는 CodeBlocks 니 minGW 니 하는게 뭔소린지 모르는게 당연합니다. 하지만 좀 더 개발에 임하고 컴파일러가 뭔가를 깨닫기 시작하면 컴파일러의 소중함과 개발 환경의 중요성과 그에 따른 필요성 등을 깨닫게 되겠죠. 하지만 세상에 그런걸 혼자 알아서 다 하는 사람이 얼마나 있을까요? (저라면 귀찮아서 안할지도 ... ) 그래서 저 하나 고생해서 소소한 도움이 되고자 CodeBlocks 와 minGW 64 를 함께 붙이는 작업을 그림과 함께 소개해 보고자 합니다. CodeBlocks 의 경우 기본적으로 32ibt minGW (버젼 3 대) 를 포함하고 있는 패키지가 있습니다. 하지만 64bit 를 포함하는 것은 없죠 . 즉, 64bit minGW 를 붙이려면 직접 사용자..
GDI+ 를 minGW 에서 함께 사용하기. 기본적으로 Microsoft 에서 제공하는 GDI+ 사용에 필요한 Platform SDK 에는 minGW 에서 사용할 수 없는 asm 코드가 들어 있고 , 타 컴파일러를 배려 하지 않는 것들이 많이 들어 있습니다. 그래서 minGW 에서 GDI+ 를 사용하기 위해서는 많은 노가다가 필요한데 , 이를 위해 정리한 소스를 공유하고 자 합니다. 압축을 받아 풀면 포함 내용에 다음 두개의 폴더가 있습니다. GDIPlus4minGW : minGW 용 GDI+ 헤더 및 라이브러리 miniGW_GDIP01 : GDIPlus4minGW 를 이용한 테스트 어플리케이션 테스트 코드는 CodeBlocks 와 minGW 32bit 로 만들어 졌습니다. DEBUG 모드와 RELEASE 모두 다르게 세팅 되어 있습니다만, 단지 ..