Post
cocos2d github에서 cpp-tests 폴더 안에 있는 샘플들은 공부하는데 꽤나 유용해보였다.
그래서 이 샘플 가지고 공부를 하기로 결정!
cocos2d github cpp-tests 프로젝트 빌드 파일 실행하기
cocos2d-x-4\cocos2d-x-4\tests
다운받은 코코스 파일 안에 테스트 파일 있는 거 확인(tests폴더)
그래서 해당 프젝을 옮겨서 cmake로 빌드 파일 만들려고 하니까 에러가 난다.
H:\CocosProject\cpp-tests\build>cmake . -G "Visual Studio 17 2022" -A Win32
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19045.
CMake Error at CMakeLists.txt:17 (include):
include could not find requested file:
CocosBuildSet
CMake Error at CMakeLists.txt:18 (add_subdirectory):
add_subdirectory given source "H:/CocosProject/cpp-tests/../../cocos" which
is not an existing directory.
CMake Error at CMakeLists.txt:403 (setup_cocos_app_config):
Unknown CMake command "setup_cocos_app_config".
-- Configuring incomplete, errors occurred!
H:\CocosProject\cpp-tests\build>
관련해서 검색해보니까 같은 이슈 발견
https://github.com/cocos2d/cocos2d-x/issues/18696
Modules 에 있는 CocosBuildSet.cmake를 복사하라고 한다.
일단 기본프로젝트는 실행이 잘되어서 기본프젝에서 cocosBuildSet 위치를 검색해봤더니
test(프젝)\cocos2d\cmake\Modules에 존재한다.
\test\cocos2d 폴더를 통째로 cpp-tests 폴더에 복사했다.
근데 안된다. 그래서 빌드되는 프로젝트 CMakeLists.txt 와 안되는 프로젝트 CMakeLists.txt의 차이점을 비교함.
cocosBuildSet를 못찾는 거 보니 둘의 기본 경로가 다른 거 같음.
그리고 역시나 경로가 달랐음.
test프로젝트: set(COCOS2DX_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cocos2d)
cpp test 프로젝트: set(COCOS2DX_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../..)
그래서 CMakeLists 복사본 만들고 위치를 test프로젝트처럼 수정.
그러니까 sln 프로젝트 파일 만들어짐!!!! 성공 ㅠㅠㅠㅠㅠㅠ
근데 빌드하니까 에러 발생...
그런데 에러들을 보니까...함수 인자 갯수가 맞지 않는다고 하는 걸 보니
이거 설마 최근 함수 적용이 안된건가 싶다;;;끄으응;;;;
이 프로젝트는 그래도 simple sample이 많은 거 같아서 꼭 돌려보고 싶었는데...;;;;
전부 최신화 시켜줘야 돌아가는건가 싶다;; 일단 보니까 빌드 실패해서 exe파일도 bin 폴더에 안만들어져있음.
(수정중)
일단 에러 하나하나 뜯어보기로 했음
에러 목록
1. 'spine/Debug.h'
오류 C1083 포함 파일을 열 수 없습니다. 'spine/Debug.h': No such file or directory
일단 쓰는 곳이 없어서 주석 처리.
Label::createWithBMFont("fonts/geneva-32.fnt", "And this is Geneva", TextHAlignment::LEFT, 0, Rect(0, 128, 0, 0));
일단 createWithBMFont 함수 레퍼런스 찾아봄.
static Label* createWithBMFont | ( | const std::string & | bmfontPath, |
const std::string & | text, | ||
const TextHAlignment & | hAlignment = TextHAlignment::LEFT, | ||
int | maxLineWidth = 0, | ||
const Vec2 & | imageOffset = Vec2::ZERO | ||
) |
Allocates and initializes a Label, with a bitmap font file.
Parameters
bmfontPath | A bitmap font file, it's a FNT format. |
text | The initial text. |
hAlignment | Text horizontal alignment. |
maxLineWidth | The max line width. |
imageOffset |
ReturnsAn automatically released Label object.See alsosetBMFontFilePath setMaxLineWidth
5개 인자라서 false 빼주고 rect 대신 vector 해줌. 어차피 밑에서 벡터 set해주길래 그냥 0, 0으로 넣음. 그리고 어차피 실행이 목적이라 아무 값이나 넣거나 주석 처리 ㄱㄱ
auto label2 = Label::createWithBMFont("fonts/geneva-32.fnt", "And this is Geneva", TextHAlignment::LEFT, 0, Vec2(0, 0));
그랬더니 오류 133개가 튀어나왔다 아...........
으앙...더해보고 안되면 뭐 레퍼런스나 다른 프로젝트 참고를 해야겠어ㅠㅠ
근데 일단 에러나는 파일을 보면
SpineTest.h
SpineTest.cpp
CCConsole.h
ccUTF8.h
이 4개라서 이걸 제외하기로 결정. 일단 CCConsole.h, ccUTF8.h는 하나씩만 에러가 나고
몇백개 대부분 에러는 SpineTest.h, SpineTest.cpp에서 발생.
그래서 SpineTest.h, SpineTest.cpp 사용하는 부분 싹 다 주석처리.
갹!!!성공!!!!
다양한 예제가 있었다.
그리고 이제 또 분석하면 된다...
버그해결>분석>버그해결>분석>버그해결>분석
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
'이전게시판 > cocos-2d' 카테고리의 다른 글
cocos2dx bool onTouchBegan(Touch* touch, Event* unused_event); 오버로드 된 멤버함수가 없습니다 (0) | 2024.02.24 |
---|---|
CallFunc::create 함수에서 CC_CALLBACK_0 매크로 인자로 원하는 인수 넘기기 (0) | 2024.02.22 |
cocos2d-x Text와 효과 정리 (0) | 2024.02.17 |
cocos2d-x4 Rect, Scale, Rotation, Flipp, Opacity, Visible, Color (0) | 2024.02.17 |
cocos2d-x 에러 수정하기 (0) | 2024.02.16 |
Cocos2d Anchor 좌표 설정(with cocos2d 기본 프로젝트) (0) | 2024.02.15 |
cocos-2d 4.0 visual studio basic project 실행 (0) | 2024.02.14 |
cocos-2d 4.0 설치 방법 (0) | 2024.02.13 |