С Новым годом! Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 730
1

Cmake, как построить и подключать библиотеки OpenGL

03.09.2015, 02:38. Показов 6099. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, нужно построить библиотеки glew и glfw, чтобы добавить потом в Visual Studio 2013.

1) Скачал исходники с http://glew.sourceforge.net/ и http://www.glfw.org/
2) Скачал Cmake c http://www.cmake.org/ для построения.
3) Установил Cmake
4) Разархивировал glew и glfw
5) Запустил Cmake, в первом поле указал путь на разархивированную папку glfw c файлом CMakeLists.txt, во втором поле указал место для будущих файлов компилятора Visual Studio
6) Нажал Configure, выбрал свою весию Visual Studio (2013), нажал Generate, появились файлы Visual Studio по месту указном во втором поле.
7) В папке с файлами VS запустил файл проекта GLFW.sln
8) Выбрал ALL_BUILD нажал собрать, началась Debug сборка
9) Все успешно завершилось

Я думал должны появиться файлы библиотеки GLFW с разрешениями .h .lib .dll чтобы можно было их закинуть в соответствующие папки visual studio/VC как и с библиотекой glut.

Но нигде никаких файлов не нашел, что не так делаю или все правильно делаю, но жду не того результата?
Объясните плиз, вопрос то легкий и каждый кто работает с openGL 4+ строил библиотеки хотя бы раз.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2015, 02:38
Ответы с готовыми решениями:

Как подключать библиотеки?
выделяется серым.. как сделать так, чтобы это было подключено к проекту ? from asyncio import...

Как создавать и подключать библиотеки?
Здравствуйте, я искал по форуму в интернете и в книгах, но все что я находил по этому вопросу у...

Как подключать dll библиотеки в VS
Когда подключал opencv нужно было просто указать пути к заголовочным и lib файлам. Но вот скачал...

Как подключать библиотеки в ndk?
Как подключать библиотеки в ndk??

8
Программист велосипедист
161 / 48 / 7
Регистрация: 23.11.2014
Сообщений: 313
03.09.2015, 11:56 2
зачем глупый компилируешь когда есть бинарные релизы
glew-1.13.0-win32.zip
glfw-3.1.1.bin.WIN32.zip
glfw-3.1.1.bin.WIN64.zip
1
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 730
05.09.2015, 08:52  [ТС] 3
GLFW подключилась к visual studio и команды видит, но почему то при построении выходят куча ошибок.

Может я что-то не туда кинул?

Код такой:
C++
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
#include "glew.h"
#include "GLFW/glfw3.h"
#include <iostream>
 
int main(void)
{
    GLFWwindow* window;
 
    if (!glfwInit())
        return -1;
    window = glfwCreateWindow(640, 480, "Koker 004|1|GLFW", NULL, NULL);
    if (!window)
    {
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);
    while (!glfwWindowShouldClose(window))
    {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
 
    glfwTerminate();
    return 0;
}
Все ошибки на "неразрешенный внешний символ"
Кликните здесь для просмотра всего текста

Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ __imp__glClear@4 в функции _glfwCreateWindow

Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ __imp__glGetIntegerv@8 в функции _glfwExtensionSupported

Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ __imp__glGetString@4 в функции _glfwExtensionSupported

Ошибка 4 error LNK2019: ссылка на неразрешенный внешний символ __imp__wglCreateContext@4 в функции __glfwCreateContext C:\Users\koker\documents\visual studio 2013\Projects\koker004\glfw3.lib(wgl_context.obj)

Ошибка 5 error LNK2019: ссылка на неразрешенный внешний символ __imp__wglDeleteContext@4 в функции __glfwDestroyContext C:\Users\koker\documents\visual studio 2013\Projects\koker004\glfw3.lib(wgl_context.obj)

Ошибка 6 error LNK2019: ссылка на неразрешенный внешний символ __imp__wglGetProcAddress@4 в функции __glfwPlatformGetProcAddress C:\Users\koker\documents\visual studio 2013\Projects\koker004\glfw3.lib(wgl_context.obj)

Ошибка 7 error LNK2019: ссылка на неразрешенный внешний символ __imp__wglMakeCurrent@8 в функции __glfwPlatformMakeContextCurrent C:\Users\koker\documents\visual studio 2013\Projects\koker004\glfw3.lib(wgl_context.obj)

Ошибка 8 error LNK2019: ссылка на неразрешенный внешний символ __imp__wglShareLists@8 в функции __glfwCreateContext C:\Users\koker\documents\visual studio 2013\Projects\koker004\glfw3.lib(wgl_context.obj)

Ошибка 9 error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции ___tmainCRTStartup C:\Users\koker\documents\visual studio 2013\Projects\koker004\MSVCRTD.lib(crtexew.obj)

Ошибка 10 error LNK1120: неразрешенных внешних элементов: 9 C:\Users\koker\documents\visual studio 2013\Projects\koker004\Debug\koker004.exe




Всего 10 ошибок.

Как решить их?
0
Программист велосипедист
161 / 48 / 7
Регистрация: 23.11.2014
Сообщений: 313
05.09.2015, 10:38 4
Вы не подключили GLFW + у вас нет входной функции Main();
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
08.09.2015, 07:38 5
Подключи библиотеку opengl32.lib
1
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 730
15.09.2015, 16:13  [ТС] 6
Добавил #include "GLFW/glfw3native.h"
теперь все заголовочные файлы glfw подключены

Исправил с int main(void) на int Main(void)
функция входа есть

Теперь ошибки такие:

#error : "No window API selected" glfw\glfw3native.h
#error: "No window API selected" GLFW\glfw3native.h
#error: "No context API selected" GLFW\glfw3native.h

как исправить?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
15.09.2015, 16:37 7
Цитата Сообщение от koker007 Посмотреть сообщение
Добавил #include "GLFW/glfw3native.h"
теперь все заголовочные файлы glfw подключены
Исправил с int main(void) на int Main(void)
функция входа есть
Теперь ошибки такие:
#error : "No window API selected" glfw\glfw3native.h
#error: "No window API selected" GLFW\glfw3native.h
#error: "No context API selected" GLFW\glfw3native.h
как исправить?
Не слушай кого попало.
1. Подключать надо #include <GLFW/glfw3.h>
2. Либо верни обратно на int main() и используй консольное приложение, либо оставь оконное приложение и используй WinMain заместо main.
0
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 730
02.10.2015, 11:47  [ТС] 8
Всем спасибо, целый месяц парился с проблемой , теперь библиотеки GLFW и GLEW подключились.

Как решил

1) Сначала компилировал через Cmake исходники скаченные с официальных сайтов библиотек, в интернете есть туториалы как это делается, я думал изначально что проблема именно в этом, в создании файлов разрешения .lib, но нет.

2) Cкомпилированные библиотеки подключил так:
В настройках проекта Свойства конфигурации -> Каталоги С++ -> Каталоги включения Указал месторасположение папки с файлом glfw3.h.

3) Свойства конфигурации -> Каталоги С++ -> Каталоги библиотек указал папку со скомпилированым файлом glfw3.lib.

4) Далее Свойства конфигурации -> Компоновщик -> Ввод -> Дополнительные зависимости Указал название подключаемой библиотеки glfw3.lib.

5) И Самое главное, оказывается что библиотека GLFW не работает без библиотеки opengl32.lib, так что я ее тоже прописал в подключение вместе с glfw3.lib. Этого я не знал и нигде об этом не говорилось.

6) Тоже самое проделал и для библиотеки GLEW


Все файлы (заголовочные и библиотеки) GLEW и GLFW держу в двух папках, не знаю правильно это или нет, но раз работает то наверно сойдет.

На самом деле двумя библиотеками программа не ограничивалась, и запрашивала какие то другие библиотеки из за подключения GLEW, но их я нашел и положил в папки вместе GLFW и GLEW.

Тему можно закрывать, спасибо. Надеюсь кому-то это поможет.
3
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 3
19.08.2016, 13:43 9
Все верно. + ошибки такие же выскакивают, когда путаешь скомпиленые библиотеки, вместо 32 пихаешь 64 и обратно...
0
19.08.2016, 13:43
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.08.2016, 13:43
Помогаю со студенческими работами здесь

Как подключать библиотеки в VS 2012
Всем доброго времени суток. Я недавно начал изучать С++ и среду програvмирования VS 2012. Такой...

Как подключать сторонние библиотеки в Qt Creator?
Здравствуйте! Я новичок в Qt. Пытаюсь подключить внешнюю статическую библиотеку к проекту, что-то...

Как правильно подключать файлы и библиотеки.
Может я плохо ищу, а может действительно очень много информации как, но нет как правильно. Я...

CodeBlocks. Как правильно подключать библиотеки
Сделал подключение реализации вот таким способом но выдает такую ошибку не знаю, может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Блоги программистов
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­хро­н­н­ы­й счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru