На Windows в Visual Studio было достаточно раскидать файлы по специальным папкам и прописать:
#include <GL/glut.h>
#pragma comment (lib, "opengl32.lib")
#pragma comment (lib, "glu32.lib")
#pragma comment (lib, "glut32.lib")
Как же быть на линуксе? Вот из этого ответа я понял, что #pragma comment не сработает. Еще я понял, что в CMakeLists.txt надо все линковки самому прописывать. Я поставил freeglut3-dev и что откуда мне линковать?
Вот мой CMakeLists.txt:
cmake_minimum_required(VERSION 3.8)
project(paintc)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
file(GLOB SOURCES "*.cpp" "*.h")
add_executable(paintc ${SOURCES})
Все оказалось намного интереснее. Оказывается, при компиляции на gcc надо передавать параметры (не файлы), указывающие на линковки. В CMake для этого используется target_link_libraries(<имя проекта> <имена включений разделенные пробелами и без буквы l вначале>). В моем случае это будет выглядеть так: target_link_libraries(paintc glut GLU GL). При вызове gcc же необходимо будет указать -lglut -lGLU -lGL.
Продвижение своими сайтами как стратегия роста и независимости