결론 부터 말하자만 이 프로젝트는 실패했다.
실패는 성공의 어머니라고 ... 누가 그랬던가 ? 실패한것도 경험이기때문에 흔적을 남겨놓는다.
2017년 12월 14일 오전 K씨가 다음 동영상을 보여주었다.
Sorting Algorithms in 6Minutes (6분 안에 15개의 정렬 알고리즘)
http://panthema.net/2013/sound-of-sorting/
정렬알고리즘을 이미지화 하여 보여주는데 ... 오... 이뻐 이뻐
그리고 그걸 본인이 어제(2017-12-13) 구현 하려고 했는데 동영상처럼 단계별로 보여주는 것이 아닌
시작과 끝만 나온단다. ㅋㄷㅋㄷ
해당 동영상 하단에 동영상 개시자의 설명이 나오고 그곳의 링크를 타고 들어가 공개된 소스를 받아보았다.
sound-of-sorting 0.6.5 (current) published 2014-05-15 | ||
Source code archive: | sound-of-sorting-0.6.5.tar.bz2 (141 KiB) | Browse online |
Win32 binary: | sound-of-sorting-0.6.5-win32.zip (1.58 MiB) | |
Linux binary: | sound-of-sorting-0.6.5-linux32-64.zip (1.61 MiB) dynamically linked with Debian Etch 32-/64-bit |
Win32 binary 를 다운받아 풀어보니 exe 파일이 있다. 실행시켜보니 정상적으로 잘 작동한다.
다음으로 sound-of-sorting-0.6.5.tar.bz2 를 클릭해서 소스를 받아보았다.
음 ...
C++ 로 ... 만들어졌내 ?
그렇다면 ...
1. 공개된 소스를 구동시킨다.
2. 분석
3. 자바로 만들어 재 공개 해야지 ~
왕년에 window 에서 MFC 프로그레밍을 한적이 있었던 경험이 있어서 자신있었다. 결국 실패했지만... 일단비쥬얼 스튜디오를 설치해야겠다고 생각했다.
Visual Studio 설치는 아래 블로그를 참조했다.
다운받고 설치하려니 .NET 프레임워크가 있어야 한단다.
https://go.microsoft.com/fwlink/?linkid=840938
win32 프로젝트를 하나 만들고 소스파일 복붙하니 걍 알아서 찾아들 들어가졌다.
그리고 ctrl + f5 하니 오류
사이트를 천천히 다시 읽어보았다.
The demo is implemented using the cross-platform toolkits wxWidgets and SDL, can be executed on Windows, Linux and Mac, and runs in real time.
이 데모는 크로스 플랫폼 툴킷 wxWidgets 및 SDL을 사용하여 구현되었으며, Windows, Linux 및 Mac에서 실행될 수 있으며 실시간으로 실행됩니다.
음... wxWidgets and SDL ???
구글 검색 후 https://www.wxwidgets.org/ 찾아들어가서 download 받았다.
wxWidgets 를 설치하니 별다른실행파일 없이 C 드라이브에 wxWidgets-3.1.0 폴더가 생성되어 있다.
다음 블로그들을 참조해보았다.
http://dev-skill.tistory.com/59 뭔소린지 모르겠다. 안된다.
http://liveupdate.tistory.com/198 이건 또 뭔가 ? 새로운 새상이다.
http://yiunsr.tistory.com/638 이것이 vs 위에 wxWidgets 한것 같아 보인다. ... 버전이 틀리다. 그렇다고 버전을 다운시키고 싶지 않다.
일단 wxWidgets 의 예재를 실행 시켜보려 했다.
windows SDK 버전 8.1 이 없단다. 다운받아 설치해보자..
https://developer.microsoft.com/ko-kr/windows/downloads/windows-8-1-sdk
무수히 많은 오류 ... wxWidgets .... 모르니 모를수 밖에 ? 알때까지 하는거다
https://forums.wxwidgets.org/viewtopic.php?p=142017#p142017
찾다 찾다 위 링크에 들어가서 영어를 번영 한 번역문을 보고 시키는대로 따라해보았다....
Re: link error in Visual Studio 2010
Re : Visual Studio 2010의 링크 오류
Postby doublemax»2012 년 3 월 29 일 목요일 오후 4:21
모 놀리 식 libs를 사용하는 것은 Windows에서 매우 드문 경우이며 샘플 중 아무 것도 사용하지 않으므로 반대 의견을 제시합니다.
또한 튜토리얼과 wiki 페이지는 꽤 빨리 구식이됩니다. 그래서 진행 방법에 대한 제 권장 사항은 다음과 같습니다.
wxWidgets 사이트에서 최신 소스 패키지를 다운로드하십시오. 2.8.x를 사용해야하는 구체적인 이유가없는 한 Visual Studio의 최신 프로젝트 파일이 포함되어 있으므로 3.0.1 (또는 최신 버전이 무엇이든간에)으로 이동하십시오.
DOS 줄 끝이있는 소스 패키지를 얻으십시오. VS는 Unix 줄 끝을 기다리지 않습니다.
포장을 풀고 <wxdir> / build / msw /로 이동 한 다음 "wx_vc10.sln"을 엽니다.
일반적으로 두 가지 구성 만 구성해야합니다.
wxWidgets의 정적 연결을위한 "디버그"및 "릴리스"(필자의 권장 사항)
또는
"DLL 디버그"및 "DLL 릴리스"를 사용하여 wxWidgets를 DLL에 빌드합니다.
이것들은 상자 밖으로 만들어야합니다. "DLL"버전을 빌드 할 때 일부 라이브러리는 다른 라이브러리에 종속되기 때문에 여러 번 빌드해야하지만 빌드 순서가 잘못되었습니다.
라이브러리가 올바르게 빌드되면 <wxdir> / samples / minimal /로 이동하고 "minimal_vc9.vcproj"를 엽니다. 라이브러리 및 빌드에 사용한 구성과 동일한 구성을 선택하십시오.
이것이 성공했다면, 최소한의 샘플을 복사하고 거기에서 자신의 프로젝트를 시작하십시오.
2014 년 8 월 6 일 오전 8:58 am, doublemax에 의해 마지막으로 편집 됨. 총 1 회 편집 됨.
근원을 사용하십시오, 루크!
구글 번역기 돌려서
[포장을 풀고 <wxdir> / build / msw /로 이동 한 다음 "wx_vc10.sln"을 엽니다.] 이부분과
[<wxdir> / samples / minimal /로 이동하고 "minimal_vc9.vcproj"를 엽니다.] 이 부분 설명대로 한 후
minimal 에 위 sound-of-sorting-0.6.5.tar.bz2 압축을 풀어 다운 받은 소스를 통째로 집어 넣고 컴파일 해 보았다.
앜 !!! 이번엔 SDL 이 없단다.
http://www.libsdl.org/download-1.2.php
dll 이 다운받아졌고 추가는 다음 url 을 참조 했다. http://tibyte.kr/231
자 ... 거의 끝나간다 !! 내 ... 인내심이 ...
식별자 "__builtin_ctz"이(가) 정의되어 있지 않습니다.
__builtin_ctz 은 gcc 에서 재공 되는 내장 함수 ...
gcc 에서 재공되는 컴파일을 사용했구나 ... 이건 어떻게 하는걸까 ?
Visual Studio Code 와 MinGW를 사용하여 C/C++ 개발 환경 만들기
http://webnautes.tistory.com/1158
Visual Studio Code 좋아는 보이는데 이것은 또 다른 도전이고 점점 산으로 가는듯 하여 일단 스킵
여기에 리눅스 설정이 나온다.
아 ... 이건 또 뭔가 ? 좋은 내용인것 같지만 이것역시 스킵
검색하다가 다음 결과를 얻었다.
https://github.com/ejnahc/APSS/blob/master/16.BitMask/BitmaskUnion.cpp
그렇다. gcc/g++ 에서 사용하는 function 이라면 Visual C++ 용도 있겠지!!
__builtin_ctz 를 사용해서 문제되는 소스를 수정해서 다시 컴파일
이 오류 메시지 보는 순간
이글이 끝나는 순간이다. 이런 메시지는 ... 느낌상 안좋다. 처음부터 어디서 부터 잘못되었는지 감잡을 수 없게 되었다.
다시 원점으로 돌아와서 이제야 소스를 다시 보았다.
어찌생각해보면 이걸 가장 먼저 발견해야했을지도 모르겠다.
Makefile 의 존재 ... 이건 아니다.
Makefile 이 있다는것은 컴파일쪽에 뭔짓을 했는지 저걸 열어서 분석해봐야한다는거다.
이 Makefile 은 하나로 안끝난다. src 폴더 안에도 또 있다. 그렇다는건 이 둘이 서로 대화하면서 컴파일할거 같은데 이건 아니다.
다시 본질 원점으로 돌아가서 이짓을 왜하고 있는지 되집어 보았다.
난 단지 정렬알고리즘을 그래프로 시각화 한 java 소스를 얻고 싶다.
그렇게 원점으로 돌아와 다시 유트브로 돌아와 해당 동영상을 다시 봤다.
그리고 우측 다음 동영상 쪽에 더 그럴싸한 동영상을 찾았다. 2017-12-17
https://www.youtube.com/watch?v=ZZuD6iUe3Pc
Viktor Bohush 2014.4.24
source code : https://github.com/vbohush/SortingAlgorithmAnimations
github 에서 소스코드 다운받고 eclipse 열고 java 프로젝트 하나 만든 후 소스 복붙하고 run 해보았다.
걍 동작한다.
그리고 내가 원하던대로 알고리즘들을 모두 보여주고 한눈에 비교된다. 이편이 더 낳다.
정렬하면서 소리나는거 ... 음... 소리 ? 이건 그냥 버릴란다.
각 정렬 별 정의를 설명할 자신은 없어서 정렬검색결과를 링크한다.
교훈 ?
오두방정 떨지 말것
충분히 정말 충분히 검색할 것
결국 실패로 끝났지만. 언젠가 makefile 이거 한번 징하게 파리라 ... 오픈소스는 분석은 안할지라도 최소한 돌릴 수는 있고 싶다.
'DEV' 카테고리의 다른 글
XLGantt(엑셀간트) | 엑셀 일정관리 (2) | 2018.01.02 |
---|---|
[ORACLE] MERGE INTO SEMPLE (0) | 2018.01.02 |
9. Camera Calibration (카메라 보정) (0) | 2017.12.10 |
8. Object Detection (객체 감지) (0) | 2017.12.10 |
7. Image Segmentation (이미지 분할) (0) | 2017.12.10 |