Thắc Mắc - OpenGL Và Các Thư Viện Của Nó - VOZ

VOZ
  • Forums New posts
  • Latests Featured content New posts New profile posts Latest activity
Log in Register What's new
  • New posts
Menu Log in Register Install the app Install How to install the app on iOS

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • Forums
  • Học tập & Sự nghiệp
  • Lập trình / CNTT
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. thắc mắcopenGL và các thư viện của nó
  • Thread starter Thread starter Khambui
  • Start date Start date Apr 25, 2022
Khambui

Khambui

Senior Member
em là sinh viên năm nhất, trước giờ em chủ yếu code những bài dựa trên những thư viện đơn giản như iostream, bits/stdc++.h,.. nhưng sang đến phần này thì cài thư viện nó khó quá các thím. Trước giờ em code trên vscode. Em thấy người ta nói đây chỉ là editor nên ít có video hướng dẫn. Em lên ytb tìm những video hướng dẫn cài thư viện thì toàn thấy dùng visual studio. Với em, đây là 1 ide quá lớn khiến em bị ngợp. Các thím có thể thương tình dẫn lối cho em cách cài đầy đủ thư viện của cái này được không ạ? Em bị kẹt ở cái này cả 1 tuần rồi !! Em xin cảm ơn các thím ! Khambui

Khambui

Senior Member
em đá lên với thiết tha có người trợ giúp Kurisu Makise

Kurisu Makise

Senior Member
Cài gcc để có compiler, trong thư mục gcc sẽ có include và lib. Sau này thêm thư viện nào thì bỏ các file h, hpp vào include, các file dll, a, so vào lib Xem trên web của thư viện đó đọc hướng dẫn tích hợp vào vscode hay không Sẽ có template các file c_cpp_properties.json, launch.json, settings.json, tasks.json (Win) và makefile (Ubuntu) Thường thì mình dùng được ngay mấy file template này hoặc cùng lắm thì thêm đường dẫn các file src, include mà bạn tự tạo ra trong project thanbaiks

thanbaiks

Senior Member
Khambui said: em đá lên với thiết tha có người trợ giúp Click to expand...
Khambui

Khambui

Senior Member
thanbaiks said: Click to expand...
em hỏi câu này có hơi ngu mong thím bỏ qua. Cái thư viện GLFW nó bao hàm cả gl, glu, glut ạ? Tại em thấy mấy cái example code trên mạng nó hay khai báo mấy các thư viện này mà video thím gửi nó chỉ cài mỗi GLFW thanbaiks

thanbaiks

Senior Member
Khambui said: em hỏi câu này có hơi ngu mong thím bỏ qua. Cái thư viện GLFW nó bao hàm cả gl, glu, glut ạ? Tại em thấy mấy cái example code trên mạng nó hay khai báo mấy các thư viện này mà video thím gửi nó chỉ cài mỗi GLFW Click to expand...
Làm theo như clip chạy đc ra window và có GL context là ngon rồi bro. Mấy thằng kể trên chỉ để bổ trợ thôi Kân team v2

Kân team v2

Member
Khambui said: em là sinh viên năm nhất, trước giờ em chủ yếu code những bài dựa trên những thư viện đơn giản như iostream, bits/stdc++.h,.. nhưng sang đến phần này thì cài thư viện nó khó quá các thím. Trước giờ em code trên vscode. Em thấy người ta nói đây chỉ là editor nên ít có video hướng dẫn. Em lên ytb tìm những video hướng dẫn cài thư viện thì toàn thấy dùng visual studio. Với em, đây là 1 ide quá lớn khiến em bị ngợp. Các thím có thể thương tình dẫn lối cho em cách cài đầy đủ thư viện của cái này được không ạ? Em bị kẹt ở cái này cả 1 tuần rồi !! Em xin cảm ơn các thím ! Click to expand...
có gì mà ngợp Xv0BtTR.png open project lên rồi bấm compile có khác mọe gì các ide khác đâu ghXpJrI.png xài cmake + vcpkg + vs thì thư viện nào cũng xài được nhóe FRNoa0o.gif --- Bước 1. Install Git + CMake, nhớ add cả 2 vào PATH Bước 2. Tạo project bằng tay BmR2p0V.png có mấy file sau: - src/main.cpp lấy từ file này: https://raw.githubusercontent.com/glfw/glfw/master/examples/triangle-opengl.c, sửa lại 2 dòng: C++: // #include <glad/gl.h> #include <glad/glad.h> // gladLoadGL(glfwGetProcAddress); gladLoadGLLoader((GLADloadproc)glfwGetProcAddress); - src/linmath.h lấy từ file này: https://raw.githubusercontent.com/glfw/glfw/master/deps/linmath.h - CMakeLists.txt (tên project ở đây toy ví dụ là "glfw-init") Code: cmake_minimum_required(VERSION 3.20 FATAL_ERROR) project(glfw-init CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(glfw3 CONFIG REQUIRED) find_package(glad CONFIG REQUIRED) add_executable(${PROJECT_NAME} WIN32 src/main.cpp src/linmath.h) target_link_libraries(${PROJECT_NAME} PRIVATE glfw glad::glad) if (WIN32) target_link_options(${PROJECT_NAME} PRIVATE "/ENTRY:mainCRTStartup") endif() set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME}) - CMakePresets.json JSON: { "version": 3, "configurePresets": [ { "name": "base", "binaryDir": "${sourceDir}/build/${presetName}", "installDir": "${sourceDir}/install/${presetName}" }, { "name": "vcpkg-submodule", "inherits": "base", "toolchainFile": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake" }, { "name": "vs2022", "displayName": "Visual Studio 2022 64-bit using vcpkg as submodule", "inherits": "vcpkg-submodule", "generator": "Visual Studio 17 2022", "architecture": "x64", "environment": { "VCPKG_DEFAULT_TRIPLET": "x64-windows" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } } ], "buildPresets": [ { "name": "default-build-windows", "displayName": "Default", "configurePreset": "vs2022", "description": "Vanilla build" } ] } - vcpkg.json JSON: { "name": "glfw-init", "version": "0.0.1", "dependencies": [ "glfw3", { "name": "glad", "features": [ "gl-api-46" ] } ] } Bước 3. Mở terminal lên rồi cd tới thư mục project vừa tạo, ví dụ của toy là D:/projects/glfw-init, rồi gõ: Code: git init git submodule add https://github.com/Microsoft/vcpkg vcpkg cmake --preset=vs2022 cmake --build --preset=default-build-windows "cmake --preset=vs2022" là nó tự động configure, download glfw, glad về build cho mình, mình đéo cần biết gì hết cgE9MkI.gif "cmake --build --preset=default-build-windows" là nó build cho mình, khỏi cần mở VS lên cũng được irGoYrZ.gif nó build file Debug, muốn build file Release thì gõ "cmake --build --preset=default-build-windows --config Release" còn muốn mở VS ide thì cứ mở file .sln ở "build/vs2022/gflw-init.sln" lên là được GYA3x5J.gif Khambui

Khambui

Senior Member
Kân team v2 said: có gì mà ngợp Xv0BtTR.png open project lên rồi bấm compile có khác mọe gì các ide khác đâu ghXpJrI.png xài cmake + vcpkg + vs thì thư viện nào cũng xài được nhóe FRNoa0o.gif --- Bước 1. Install Git + CMake, nhớ add cả 2 vào PATH Bước 2. Tạo project bằng tay BmR2p0V.png có mấy file sau: - src/main.cpp lấy từ file này: https://raw.githubusercontent.com/glfw/glfw/master/examples/triangle-opengl.c, sửa lại 2 dòng: C++: // #include <glad/gl.h> #include <glad/glad.h> // gladLoadGL(glfwGetProcAddress); gladLoadGLLoader((GLADloadproc)glfwGetProcAddress); - src/linmath.h lấy từ file này: https://raw.githubusercontent.com/glfw/glfw/master/deps/linmath.h - CMakeLists.txt (tên project ở đây toy ví dụ là "glfw-init") Code: cmake_minimum_required(VERSION 3.20 FATAL_ERROR) project(glfw-init CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(glfw3 CONFIG REQUIRED) find_package(glad CONFIG REQUIRED) add_executable(${PROJECT_NAME} WIN32 src/main.cpp src/linmath.h) target_link_libraries(${PROJECT_NAME} PRIVATE glfw glad::glad) if (WIN32) target_link_options(${PROJECT_NAME} PRIVATE "/ENTRY:mainCRTStartup") endif() set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME}) - CMakePresets.json JSON: { "version": 3, "configurePresets": [ { "name": "base", "binaryDir": "${sourceDir}/build/${presetName}", "installDir": "${sourceDir}/install/${presetName}" }, { "name": "vcpkg-submodule", "inherits": "base", "toolchainFile": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake" }, { "name": "vs2022", "displayName": "Visual Studio 2022 64-bit using vcpkg as submodule", "inherits": "vcpkg-submodule", "generator": "Visual Studio 17 2022", "architecture": "x64", "environment": { "VCPKG_DEFAULT_TRIPLET": "x64-windows" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } } ], "buildPresets": [ { "name": "default-build-windows", "displayName": "Default", "configurePreset": "vs2022", "description": "Vanilla build" } ] } - vcpkg.json JSON: { "name": "glfw-init", "version": "0.0.1", "dependencies": [ "glfw3", { "name": "glad", "features": [ "gl-api-46" ] } ] } Bước 3. Mở terminal lên rồi cd tới thư mục project vừa tạo, ví dụ của toy là D:/projects/glfw-init, rồi gõ: Code: git init git submodule add https://github.com/Microsoft/vcpkg vcpkg cmake --preset=vs2022 cmake --build --preset=default-build-windows "cmake --preset=vs2022" là nó tự động configure, download glfw, glad về build cho mình, mình đéo cần biết gì hết cgE9MkI.gif "cmake --build --preset=default-build-windows" là nó build cho mình, khỏi cần mở VS lên cũng được irGoYrZ.gif nó build file Debug, muốn build file Release thì gõ "cmake --build --preset=default-build-windows --config Release" còn muốn mở VS ide thì cứ mở file .sln ở "build/vs2022/gflw-init.sln" lên là được GYA3x5J.gif Click to expand...
Trước giờ em quen xài vscode quen giờ sang cái này thứ nhất là nó chậm, thứ 2 là nó nhiều mục quá đâm ra là em không biết bắt đầu từ đâu. Cảm ơn sự hướng dẫn của thím, em đang làm theo, nếu mắc ở đâu thì em ib thím nhá 😋😋😋😋 Kân team v2

Kân team v2

Member
giải thích cấu trúc project: 1. Các file mã nguồn (source files) .h, .cpp bỏ trong thư mục "src" hết (nếu viết thư viện cho project khác thì mới có thể cần tạo thư mục "include" riêng và bỏ các file .h cần expose ra ngoài vào đó) 2. Ở ngoài thư mục chính có 3 file: CMakeLists.txt, CMakePresets.json, vcpkg.json
  • CMakeLists.txt là file chỉ cho CMake nó tạo build script, là mấy dòng command line hoặc file chứa các lệnh cần thiết để compiler build file text thành file thực thi
  • CMakePresets.json là để dọn sẵn configure profiles cho project này. CMake có thể generate build script cho nhiều compiler khác nhau, khác từ gcc, clang, msvc, v.v... tới msvc mà khác năm như vs2015 vs2017 vs2019 vs2022 v.v... mỗi compiler lại có thể có arch 32-bit/64-bit, và xài generator khác nhau nữa 0KSdPUp.png Thì CMakePresets để ghi sẵn ra là project của toy support những preset cho các generator/compiler/arch/config combo này, anh generate theo preset này bảo đảm ok, còn anh xài generator khác thì cũng được đó nhưng toy chưa test chẳng hạn. Ví dụ toy "chôm" từ nguồn này https://github.com/esweet431/box2d-lite/blob/vs-launch/CMakePresets.json họ tạo các preset cho windows/linux 32/64 bit.
  • vcpkg.json nếu ai xài python thì có thể xem nó giống như file requirements.txt hay bên node là package.json, hay Rust/Go gì cũng có, là file chứa thông tin của các thư viện ngoài mà project này cần xài, các thư viện đó gọi là dependencies của project này. Vcpkg khi thấy root folder có file vcpkg.json này nó sẽ đọc và tự động install các thư viện đó. vcpkg sẽ tạo cho mỗi project 1 folder "vcpkg_installed" chứa các thư viện dependencies riêng, rất tốt vì ko đụng hàng các project khác, project này có thể xài version 11 của thư viện X, project kia có thể xài version 10 của X. Nhược là thư mục vcpkg_installed này thường ngốn tầm vài chục tới vài trăm MB tùy cần ít hay nhiều thư viện, thư viện nhỏ hay lớn.
3. Xài vcpkg như là 1 submodule trong git. Nếu ko xài vcpkg như submodule thì đẩy lên github gitlab gì đấy chạy CI/CD sẽ khó khăn hơn 1 tí. Ưu điểm khác là khi người ta clone project mình xuống thì người ta chỉ cần gõ 1 dòng đơn giản nhất là 1 dòng "cmake --preset=..." là nó build hết luôn ko phải chạy thêm git clone vcpkg rồi bootstrap-vcpkg gì cả, thì xài vcpkg as submodule làm được. Nhược điểm là thằng lào clone xuống phải clone lại vcpkg từ đầu, hiện giờ là ngốn khoảng 25MB gì đấy 1xEuo02.gif nhưng mà kệ mọe node_packages vài GB, C++ là bố của node phải ngốn cho nhiều vào chứ cgE9MkI.gif Post reply Insert quotes…

Similar threads

yelbit thắc mắc Các thím tư vấn giúp thư viện QR code
  • yelbit
  • Nov 11, 2024
  • Lập trình / CNTT
Replies 4 Views 301 Nov 12, 2024 PapaGhede PapaGhede manoao 41.000 ca ung thư mới tại Bệnh viện Ung bướu TP.HCM năm 2024
  • manoao
  • Dec 5, 2024
  • Điểm báo
7 8 9 Replies 171 Views 14K Monday at 6:59 PM nvlam nvlam Angelika1102 Việt Nam và Mỹ hợp tác thử nghiệm thuốc điều trị ung thư mới
  • Angelika1102
  • Dec 13, 2024
  • Điểm báo
Replies 3 Views 471 Dec 13, 2024 KhangOwO KhangOwO tin233 Báo động về lượt khám ung thư ở TPHCM
  • tin233
  • Dec 6, 2024
  • Điểm báo
Replies 1 Views 362 Dec 6, 2024 gavemang gavemang matnham thắc mắc làm sao để HTML5QRcode nhận diện được mã qr nhỏ
  • matnham
  • Oct 31, 2024
  • Lập trình / CNTT
Replies 0 Views 243 Oct 31, 2024 matnham matnham Share: Facebook X (Twitter) LinkedIn Reddit Pinterest WhatsApp Share Link

Thread statistics

Created Khambui, Apr 25, 2022 Last reply from Kân team v2, Apr 26, 2022 Replies 8 Views 1,694

Share this page

Facebook X (Twitter) LinkedIn Reddit Pinterest WhatsApp Share Link
  • Forums
  • Học tập & Sự nghiệp
  • Lập trình / CNTT
Back Top

Từ khóa » Thư Viện Glfw