본문 바로가기

minGW

(27)
MinGW-W64 + glut32 예제 컴파일 하기 이전에 올린 MinGW-W64 에 기본으로 포함 되지 않는 glut32 를 만드는 방법을 다음으로, 간단히 OpenGL GLUT Example 페이지에 있는 blender.c 예제를 컴파일 해 보도록 하겠습니다. 먼저 아래의 압축 파일을 특정 위치에 푼 다음 (blender.c 소스 포함임) 해당 위치에 기존의 glut32.dll 을 복사 해 두고 make 를 해서 blender.exe 를 만들 수 있습니다. 단, 이 소스를 빌드 하기 이전엔 반드시 glut32 를 MSYS 에 make install 로 설치한 상태여야 합니다. Windows 의 정책 상 DLL 이 EXE 와 함께 있거나, Windows system 폴더 안에 복사가 되어 있어야 하므로, DLL 을 먼저 복사 해 오는 것을 고려해야 EX..
GLUT 3.7 MinGW-W64 용 Makefile 필요 사항MSYS 1.0 또는 그 이상의 버젼MinGW-W64 GLUT 3.7 컴파일 먼저 GLUT 3.7 소스를 아래에서 다운로드 받습니다.https://www.opengl.org/resources/libraries/glut/ 기본적으로 GLUT 3.7 은 MinGW 에서 빌드 할 수 있는 뭔가를 제공하지 않아서 문제 인데, 이걸 빌드 하려면 Makefile 을 모두 수정 해야 해서, 이걸 직접 만들었습니다. 이제 아래의 제가 만든 Makefile 을 다운로드 합니다. 다운로드 한 파일을 GLUT 3.7 의 압축을 푼 곳에 복사 한 다음, Make install 을 하면 /usr/local/ ... 위치에 컴파일 된 DLL 및 A 가 복제 됩니다. 이게 다 입니다. 어렵지 않습니다. make 한 다음 ..
MSYS 의 못생긴 아이콘 벗어나기 MinGW 를 오래 쓰다 보면 아마 MSYS 를 다들 쓰고 있을 것으로 예상 됩니다. 하지만 MSYS 는 오래된 시간동안 아이콘이 전혀 바뀐적이 없다고 봐야 하는데, 기본으로 주는 아이콘이 영 별로 입니다. 2개 다 2K 나 4K 에서 보면 정말 처참한 아이콘들 인데, 이를 좀 개선 하고자 다음과 같이 아이콘을 하나 만들었습니다. 그래픽 따위는 소시적 도트노가다 말고는 한적 없는 흔한 개발자다 보니 이정도 말고는 이쁘게 만들수 있는 방법을 몰라 (머리속에야 여러 도안이 있겠지만) 최대한 깔끔 하게 요즘 윈도우10 이후 그래픽 형태에 맞게 만들어 보았습니다. 표준 Windows ICON 포맷이 여러 색상을 지원 해야 한다곤 하지만, 요즘 24bit 이상이다 보니, 32bit (alpha 포함)로 16x16..
libcurl 을 MinGW-W64 에서 빌드시 오류 해결 방법 CURL(libcurl) 7.54.1 을 MinGW-W64 와 M-SYS 를 이용한 환경에서 빌드 하려고 하면 다음 화면처럼 오류를 뿜고는 진행이 안되는 경우가 많다. 보통 ./configure 를 통해서 자동으로 설정된 상태로 진행을 하게 되는데, curl 의 경우 MinGW-W64 (또는 M-SYS 내장 MinGW 도 동일) 에서 마지막 curl.exe 를 빌드 하는 와중 cur_easy_getinfo() 함수 등으로 link 실패로 이를 진행 하지 못하는 버그가 있다. 이는 Makefile 상에서 만들어진 버그 또는 환경 버그 정도일수 있어 보이는데, 간단히 export 로 CFLAGS 에 CURL_STATICLIB 을 지정해 주면 된다. 분명 ./configure 상채로 staticlib 생성이 ..
gcc/MinGW 6.x 부터 생긴 경고, misleading indentation gcc 5 버젼 부터 개발을 해 오던 librawprocessor 에서 눈치를 못 채고 있던 컴파일 경고가 뜨기 시작 한걸 이번에 알았습니다. 아직 major release 가 이루어 지지 않았기 때문에 신경을 덜 쓴 것도 있긴 합니다만, 갑자기 이 오류가 눈에 띈 것은 누군가의 계시인건지 ... 이 오류는 gcc 6 버젼 부터 강화된 여러 조건별 비교문에 따른 것으로 아래처럼 코드가 되어 있는 경우 발생 합니다. 이 오류는 GNU gcc 6 가이드 웹 페이지를 보면 나오는데,https://gcc.gnu.org/gcc-6/porting_to.html 아래 처럼 복합적인 비교문으로 포인터와 숫자로 넘어오는 값을 함께 비교 할 때에는 브레이스 {} 로 묶어 주어야 합니다. 그래서 아래처럼 코드를 변경 하면 ..
MinGW-W64, CPU 명령어 빌드에 맞춰 구동 테스트 하기. 만약 MinGW-W64 (또는 일반 MinGW) 에서 -mavx 또는 -march=corei7-avx 와 같은 빌드를 지시해서 만든 바이너리를 배포 하는데, 만약 이를 구동하는 PC 가 AVX 관련 명령어를 지원 하지 않는 환경에서 해당 바이너리를 구동하면? 이럴 경우 해당 바이너리는 그냥은 구동이 되나, AVX 관련 명령어가 실행 되는 위치에서 exception 을 뱉고, 해당 callstack 은 이전 pc 로 돌아가나, 여기서 문제가 발생 해서 함수 자체가 멍청이가 됩니다. 그래서 배포한 바이너리가 내가 빌드한 환경과 자동으로 구동 될 PC 에서의 환경과 맞는지를 간단히 테스트 할 수 있는 방법을 gcc 는 물론 MinGW 역시 지원 합니다. 이를 확인 하기 위해서는 먼저 #include 에 를 넣..
MinGW-W64 용 DirectInput 소스 (키보드,마우스,조이스틱) MinGW-w64 프로젝트 부터 DirectX 관련 SDK 가 포함 되어 있으므로 윈도우 어플 개발에 매우 편리함을 얻을 수 있습니다만, MFC 처럼 뭔가 꽁꽁 묶여져 있는거 찾기가 사실 어렵다 보니 직접 만들어 써야 하는게 많은건 사실 입니다. 대신 쾌적함을 얻을 수 있는건 덤 이지만 ... 그래서 제가 진행 중인 프로젝트 중에 DirectX 의 2D, input 을 가져다 쓰면서 좀 더 편리하게 써 보고자 만들었던 것을 공유 하고자 합니다. 사용은 간단 합니다. 먼저 현재 사용되는 윈도우에 생성 부분 쪽에 InitDirectInput() 를 사용하여 Dinput 을 초기화 합니다. 이떄 반환되는 값은 HRESULT 가 아니라 DXINPUT_INIT_RESULT_KEYBOARD, DXINPUT_INIT..
DirectX 2D 창 메뉴가 안뜨면 창을 옮기리. 부제: DirectX 2D 와 DSound 함께 쓰기 @ Windows7, 8.x 저번 주 에 있었던 DirectX 2D 를 좀 더 개선 하여 다음과 같이 구현 하였습니다.PNG 이미지를 가져와서 D2D 이미지(텍스쳐)로 사용 하도록 함.Dsound 로 WAV 파일을 가져와 출력 하도록함, 백그라운드와 클릭 시 나오는 소리 2가지. 상단 30px 안에서 마우스 왼쪽 클릭 해서 끌면 창 전체가 이동 하도록 함. 렌더링을 thread 로 하도록 함.약간의 UI 적인 요소. 별 대단한 기법이 들어 간 것은 아닙니다만, DirectX 2D 와 Dsound 겹쳐서 쓰는 예제들이 너무 없어서 직접 병합 해 보았습니다. 소스는 MinGW-W64 에서 빌드 되도록 되어 있으며, Code::Blocks 의 프로젝트를 사..