Friday, July 11, 2014

Cách build Project cpp-tests của Cocos2d-x V3.x ra EXE (publish not debug)

Hi các bạn!

Dạo này mình tập trung nghiên cứu mấy project game lớn lớn 1 chút để tích kinh nghiệm và đào sâu hơn các thư viện mẫu của Engine nên cũng ít viết bài hơn. Mọi người thông cảm nhé. Càng đào sâu đọc kỹ càng thấy những hiểu biết trước đây có nhiều điểm chưa đúng, hoặc không còn đúng vào thời điểm hiện tại. Như thế là tốt, chứ cứ bảo thủ với kiến thức cũ của mình thì nguy. Chính vì thế mình đang chỉnh sửa lại những bài viết cũ trên Blog.

Trong 1 bài ngắn ngắn này mình sẽ chỉ cho các bạn cách Publish Project cpp-test của Engine ra file chạy Exe trong Window - có thể mở trực tiếp nhiều lần ko cần dùng VS. Không xét việc build APK nhé, bạn làm việc nhiều trên máy tính để code hơn mà.

Các bạn biết đấy, 1 project bình thường tạo bởi Engine, bạn có thể build ra exe bằng 2 cách :

+ Dùng lệnh cmd của window
+ Dùng VS2012, 2013 để tạo bản Release hoặc Debug

Nhưng với cách tạo Release hoặc Debug mình chạy trực tiếp file exe sẽ lỗi do thiếu Resource, và rất nhiều lib,obj, log, linh tinh khác trong thư mục. Mỗi lần chạy lại phải mở VS lên khá bất tiện. Có thể mình chưa biết cách Publish trong VS chăng. Có ai biết không - Cách build 1 lần rồi mở file Exe lên chạy cho các lần khác đó?

Với 1 bản Publish bạn sẽ dễ dàng sử dụng mọi lúc mọi nơi trên window, kể cả vác sang máy khác để chạy thử mà ko phải mở VS lên.

Thông thường khi bạn down Engine về, bạn build Project cpp-test bằng cách sau

+ Mở file cocos2d-win32.vc2012.sln theo đường dẫn Q:\ANDROID\Cocos2dx3\build, rồi cứ thế Debug và chạy thử, lần nào muốn xem ví dụ mẫu bạn cũng sẽ phải làm như vậy khá bất tiện nhỉ. Mình chuyển chế độ Release cũng vẫn phải làm vậy là sao. Nên loay hoay tìm ra cách build cmd cho cpp-tests kia. đơn giản thôi, chẳng cao siêu gì, nhưng có thể có người chưa biết như mình chẳng hạn.

Cách của mình là như thế này

+ Dùng lệnh cmd của window buil Project cpp-test như là 1 project thông thường các bạn tạo ra, nhưng trước hết các bạn phải chỉnh sửa 2 file sau.

1/ Copy file cocos2d-win32.vc2012.sln ở trên vào Project cpp-test theo đường dẫn Q:\ANDROID\Cocos2dx3\tests\cpp-tests\proj.win32, đổi tên lại thành cpp-tests.sln

2/ Quan trọng đây : Sửa path của các Libs trong file đó theo đúng đường dẫn mới ( do mình copy và thả vào thư mục khác với thư mục build mà ). Có chút kinh nghiệm là sửa được thôi. Mà DOWNLOAD file của mình cho nhanh . Trong này mình đã bỏ đi Lib và Project test khác nhé chỉ để cpp-tests thôi

3/ Mở file .cocos-project.json Xóa hết ( tốt hơn là lưu Save As đề phòng ) config trong đó và paste

{
    "project_type": "cpp"
}

Save lại

OK, giờ thì BUILD thử bằng commend sau

>cocos run -s (chỗ này bạn kéo thả thư mục cpp-tests vào đây nhé, vì path dài ngại gõ) -p win32

Kết quả sẽ ra thư mục Publish nằm trong thư mục Cpp-tests với đầy đủ Resource, dll, EXE.
Khi nào bạn cần chạy thử các ví dụ chỉ việc vào đây, hoặc tạo shortcut ngoài desktop mà run thôi. đỡ phải dùng đến VS nữa, và cũng ko phải tạo APK chạy trên điện thoại.

Bạn hoàn toàn có thể mang thư mục Publish này lên máy window khác để chạy nhé



Có thể có cách khác nữa nhưng mình chỉ biết các này thôi, ai biết cách ngắn gọn hơn thì share với

+ Bạn cũng có thể build lua-tests với cách tương tự nhưng nhớ chú ý file json là .lua nhé

Chào và hẹn gặp lại các bạn ở bài sau

7 comments:

  1. 1. Build bằng vs2012
    2. Trong folder gốc ../build/win32-debug/ => tìm file cpp-tests.exe=> chạy bình thường mà

    ReplyDelete
    Replies
    1. Mình ko chạy được mới nói, tất cả các project build = VS2012 luôn, chỉ build = cmd mới chạy trực tiếp được, chả biết sao

      Delete
  2. Nếu build không được. Bạn xóa hết file trong đó. Build lại. Mình build lần thứ 2 mới chạy được

    ReplyDelete
    Replies
    1. Vấn đề là build = VS thành công hết, chạy được hết, nhưng khi tắt VS, mở cái thư mục Debug.win32 lên tìm file exe mà chạy là không được

      Delete
    2. Mình dùng v3.0, vs2012 express. Chỉ mới học c++ 2 tháng thôi, đập luôn thằng cococs2dx. Không phải dân c++, nhưng cảm ở bạn đã chia sẽ cánh này.

      Delete
    3. À mình xài 3.2 RC0, VS 2012 Ultimate, có thể sẽ khác, DEBUG xong thoát VS ra là ko thể chạy exe được trong thư mục debug. Kể cả chuyển sang build Release,

      Delete
  3. bạn copy hết mọi thứ trong resource sang thư mục Debug.win32 là run trực tiếp file exe được nhé

    ReplyDelete