На 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
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Уважаемые сэнсэи, гуру и мастера Йоды Java, нужна подмогаСитуация тривиальная, но тревожащая мой покой
У меня есть небольшая программа, в которой есть ComboBox элементДанный элемент принимет 5 значений для примера
Сейчас изучаю ввод-вывод, столкнулся с таким понятие как каталог, не очень понимаю что это, можете объяснить?
У меня есть объект Timestamp в который записано значение