일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MySQL
- opencv
- IN
- C++
- exists
- 백준
- 자료구조
- 그래프 이론
- BFS
- dfs
- image processing
- MinHeap
- dynamic programming
- sklearn
- classification
- TD
- edge detection
- canny edge detection
- Reinforcement Learning
- SIFT
- 머신러닝
- AlexNet
- 강화학습
- machine learning
- 딥러닝
- clustering
- 인공지능
- Mask Processing
- Python
- DP
- Today
- Total
JINWOOJUNG
OpenGL Custom Package에서 Include 하기(Ubuntu 20.04) 본문
https://jinwoo-jung.tistory.com/23
이전에 업로드한 포스팅 기반으로 예제파일은 실행되지만, 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는 따로 설치되지 않음을 알 수 있다.
따라서 위 사이트로 이동하여 직접 설치해야 한다.
위와 같이 선택하여 아래 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와 연동시켜 줘야 한다.
이때, 각 경로는 자신의 환경에 맞춰서 설정해야 한다.
'자율주행' 카테고리의 다른 글
Optical Flow(작성 중) (1) | 2024.03.01 |
---|---|
OpenGL 설치 및 예제파일 실행(Ubuntu 20.04) (1) | 2024.01.04 |