본문 바로가기

c++2

OpenGL & C++ - 셰이더 컴파일에러 잡다가 CS 공부 왕창한 썰 예전 블로그에서 옮겨온 글입니다. 저 OpenGL도 꽤 열심히 했네요... 0(1) : error c0000: syntax error, $undefined at token "" 평화롭게 Learn OpenGL의 Basic Lighting 튜토리얼을 따라하고 있던 나는, 셰이더를 컴파일하던 도중 뜻밖의 문제와 마주치게 된다. 바로 위의 c0000 shader compilation error였다! 잠깐, 사전설명을 하고 가자면, OpenGL에서 점과 면을 처리하는 셰이더(shader)는 C++로 구현하는 것이 아니라, GLSL이라는 OpenGL 전용 소스코드에 구현해서 C++에서 이를 읽은 다음 추상화해서 사용한다. 따라서 셰이더 GLSL 소스를 작성 후에 C++ 소스에서 이를 런타임에 컴파일하는 와중에 에.. 2022. 9. 13.
C++/CMake 복잡한 패키지 구조를 위한 CMakeLists.txt 작성법 예전 블로그에서 옮겨온 글입니다. 지금은 두 번째 회사를 다닌지 2년이 다 되어가네요... 감개무량 회사를 다닌지 6개월, 제일 많이 성장한 부분은 패키징, 또는 아키텍처 설계다. Python은 무적의 import로 어떤 폴더에 있는 어떤 코드의 어떤 모듈, 어떤 클래스, 어떤 메소드도 불러올 수 있지만, C++은 그게 아니라서 공부 초반에 고생을 했던 기억이 있다. 사실 지금도 초반이다...ㅠ 최근 들어 가장 고생한건, CMake를 여러 계층으로 패키징된 라이브러리에 적용하는 것이었다. GNU make를 쓸 때는 폴더 이름을 그냥 쓰면 되는 것이었는데, 도대체 튜토리얼들에서 얘기하듯이 그냥 CMakeLists.txt를 폴더에 만들어주기만 하는 것만으로는 빌드가 되지 않는 것이다;; 이 문제점을 해결하기.. 2022. 9. 13.