JINWOOJUNG

OpenGL Custom Package에서 Include 하기(Ubuntu 20.04) 본문

자율주행

OpenGL Custom Package에서 Include 하기(Ubuntu 20.04)

Jinu_01 2024. 1. 11. 23:47
728x90
반응형

 

https://jinwoo-jung.tistory.com/23

 

OpenGL 설치 및 예제파일 실행(Ubuntu 20.04)

GUI 구성할 일이 생겨서 다양한 tool을 찾아보다가 PyQt와 OpenGL을 발견했다. PyQt의 경우 많은 데이터를 다루는데 있어서 로딩 속도나 데이터 처리가 어려움이 있다고 박사님께 들어서 라이다 데이

jinwoo-jung.tistory.com


 

이전에 업로드한 포스팅 기반으로 예제파일은 실행되지만, customize하기 위해 새로운 package를 설치 후 진행 시 라이브러리를 못찾는 등 여러 에러사항이 발생하여 추가적으로 업로드 한다.

 

설치 같은 경우 glad.h와 glfw3.h를 찾을 수 있어야 한다.

sudo apt-get install g++ cmake git
sudo apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev libxinerama-dev libxcursor-dev  libxi-dev libfreetype-dev libgl1-mesa-dev xorg-dev

jinwoo@jinwoo-Sword-17-A12UD:~$ find / -name glad.h 2>/dev/null
^C
jinwoo@jinwoo-Sword-17-A12UD:~$ find / -name glfw3.h 2>/dev/null
/usr/include/GLFW/glfw3.h

 

위 방법데로 설치 시 glfw는 찾아오지만, glad는 따로 설치되지 않음을 알 수 있다.

 

https://glad.dav1d.de/

 

https://glad.dav1d.de/

Extensions...

glad.dav1d.de

 

따라서 위 사이트로 이동하여 직접 설치해야 한다.

 

위와 같이 선택하여 아래 generate 버튼을 누르면 zip 파일이 생성되고 이를 다운받으면 된다.

 

이후 자신의 패키지를 설치하고 catkin_make를 진행한다(필자는 MyOpenGL이 패키지 명이다).

 

MyOpenGL
ㄴ.vscode
ㄴinclude
   ㄴMyOpenGL
ㄴmsg
ㄴsrc
   ㄴtest.cpp
ㄴCMakeList.txt
ㄴpackage.xml

 

패키지의 구성은 다음과 같고, 이때 설치만 한 glad library를 인식하지 못하기 때문에 정확한 경로설정 및 파일 정리가 필요하다.

 

gald.h, gald.c customize

아까 다운받은 zip 파일에서 glad.h와 glad.c를 찾을 수 있다. 두 코드의 위치를 glad.h는 ~/MyOpenGL/include, glad.c는 ~MyOpenGL/src로 위치시킨다. 이때, glad.c의 코드를 살펴보면 glad.h를 include하는 과정에서 

#include <glad/glad.h>

 

로 되어있을 것이다. 이는 이전에 glad 파일 내에서 저장된 헤더파일과 c 파일을 가져와서 MyOpenGL로 옮겼기 때문에, 해당 패키지 내의 glad.h를 inlcude 하기 위해서 아래와 같이 수정해야 한다. 또한, MyOpenGL/src/test.cpp 역시 해당 glad.h를 include 하기 위해서 아래와 같이 설정해야 한다.

#include <MyOpenGL/glad.h>

 

CMakeList.txt 수정

 

CMakeList.txt를 다음과 같이 수정해야 한다.

cmake_minimum_required(VERSION 3.0.2)
project(MyOpenGL)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
)


# Generate messages in the 'msg' folder
add_message_files(
  FILES
)

# Generate added messages and services with any dependencies listed here
generate_messages(
  DEPENDENCIES
  std_msgs
)

catkin_package(
 INCLUDE_DIRS include
 LIBRARIES MyOpenGL
 CATKIN_DEPENDS roscpp std_msgs
 DEPENDS system_lib
)

## Specify additional locations of header files
find_package(glfw3 REQUIRED)

include_directories(
# include
  ${catkin_INCLUDE_DIRS}
  ${GLFW_INCLUDE_DIRS}
  "/home/jinwoo/catkin_ws/src/MyOpenGL/include"
)

add_executable(MyOpenGL
  /home/jinwoo/catkin_ws/src/MyOpenGL/src/test.cpp
  /home/jinwoo/catkin_ws/src/MyOpenGL/src/glad.c
)

target_link_libraries(MyOpenGL ${catkin_LIBRARIES} ${OPENGL_LIBRARIES} glfw dl)

 

include_directories에 GLFW와 glad.h가 저장된 경로를 추가해 줘서 include를 할 수 있도록 설정하고, target_link_libraries를 통해 내 package와 연동시켜 줘야 한다. 

이때, 각 경로는 자신의 환경에 맞춰서 설정해야 한다.

728x90
반응형

'자율주행' 카테고리의 다른 글

Optical Flow(작성 중)  (1) 2024.03.01
OpenGL 설치 및 예제파일 실행(Ubuntu 20.04)  (1) 2024.01.04