Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
InfoMaster
25 / 14 / 1
Регистрация: 12.08.2011
Сообщений: 276
#1

Как правильно подключить lib - C++

07.07.2014, 11:43. Просмотров 2326. Ответов 39

Добрый день.
Пишу консольную программу на C++ (без использования Qt) с помощью редактора Qt Creator.

Она работает, но в Qt уж очень хочется понять, как правильно подключить библиотеки через файл *.pro
Если подключать так, то все работает:
C++
1
2
3
#pragma comment(lib,"opengl32.lib")
#pragma comment(lib,"glu32.lib")
#pragma comment(lib,"glut32.lib")
Но при удалении #pragma... и добавлении в *.pro кода:
C++ (Qt)
1
2
INCLUDEPATH += C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Include/gl
LIBS += -LC:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib -lopengl32 -lglut32 -lglu32
появляются ошибки LNK2019

В чем проблема? Может я не правильно что-то пишу в *.pro
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2014, 11:43     Как правильно подключить lib
Посмотрите здесь:

Как подключить библиотеку (*.lib) - C++
Нашел библиотеку для загрузки изображений: http://www.sources.ru/cpp/cpp_cximage.shtml Не пойму как в свой проект подключить. У меня...

Как подключить lib к Code::Blocks - C++
Всем привет. Я не могу подключить к Code::Blocks библиотеку .lib Я делаю вот так: Project -> Build options.. далее иду на вкладку linker...

как подключить dll и lib SDL - C++
как подключить к проекту(в Visual Studio 2010) библиотеку SDL?// есть SDL.dll, SDL.lib и SDLmain.lib и еще папка с include'ами

Как в Borland C++ к проекту подключить lib библиотеку? - C++
Как в Borland C++ к проекту подключить lib библиотеку?

Borland C++ 3.0 - Как подключить LIB файл к проекту? - C++
Добрый день! Мне необходимо использовать стороннюю библиотеку функций. Имеется один LIB и один заголовочный файл. Вроде бы делаю все...

Не могу подключить библиотеку d3dx9.lib - C++
Я занимаюсь по книге "Искусство программирования игр на С++". И на первом же уроке обломился...:-| Там нужно было подключить стандартные...

Как правильно подключить модули? - C++
Задача: Даны натуральное число n, действительные числа x1,y1; x2,y2;... xn,yn;. Найти площадь n-угольника, вершины которого при некотором...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
07.07.2014, 14:55     Как правильно подключить lib #2
В Microsoft SDK нет библиотек для MinGW.
Текст ошибок какой?
InfoMaster
25 / 14 / 1
Регистрация: 12.08.2011
Сообщений: 276
07.07.2014, 15:02  [ТС]     Как правильно подключить lib #3
Ошибки вот:
Код
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glBegin@4 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClear@4 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glColor3f@12 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnd@0 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glLoadIdentity@0 в функции "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glMatrixMode@4 в функции "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glVertex2i@8 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glViewport@16 в функции "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _gluOrtho2D@32 в функции "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInit@8 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInitDisplayMode@4 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInitWindowSize@8 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutMainLoop@0 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutCreateWindow@4 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutSwapBuffers@0 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutDisplayFunc@4 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutReshapeFunc@4 в функции _main
debug\test_window.exe : fatal error LNK1120: неразрешенных внешних элементов: 17
По пути (C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib) у меня лежат библиотеки: OpenGl32.Lib; glu32.Lib; glut32.Lib
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
07.07.2014, 15:18     Как правильно подключить lib #4
Цитата Сообщение от InfoMaster Посмотреть сообщение
По пути (C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib)
Код
LIBS += -L"C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib"
InfoMaster
25 / 14 / 1
Регистрация: 12.08.2011
Сообщений: 276
07.07.2014, 15:29  [ТС]     Как правильно подключить lib #5
Не помогло... то же набор ошибок
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
07.07.2014, 15:36     Как правильно подключить lib #6
Что-то я не пойму, компилятор какой?
InfoMaster
25 / 14 / 1
Регистрация: 12.08.2011
Сообщений: 276
07.07.2014, 15:39  [ТС]     Как правильно подключить lib #7
Microsoft Visual C++ Compiler 11.0 (x86)
HighPredator
5474 / 1840 / 342
Регистрация: 10.12.2010
Сообщений: 5,431
Записей в блоге: 3
07.07.2014, 15:54     Как правильно подключить lib #8
Почти уверен, что чтобы мс компиль сработал, вам понадобится работать через мейкфайл. На всякий случай приведите что компилятору идет на вход в командной строки (в итоге).
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
07.07.2014, 15:55     Как правильно подключить lib #9
Так подключаются библиотеки в MinGW. В MS другой синтаксис.
InfoMaster
25 / 14 / 1
Регистрация: 12.08.2011
Сообщений: 276
07.07.2014, 15:59  [ТС]     Как правильно подключить lib #10
main.cpp:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#if defined(linux) || defined(_WIN32)
#include <GL/glut.h> //Для Linux и Windows
#else
#include <GLUT/GLUT.h>  //Для Mac OS
#endif
 
void display()
{
        glClear(GL_COLOR_BUFFER_BIT);
 
        glBegin(GL_QUADS);
        glColor3f(1.0, 1.0, 1.0);
        glVertex2i(250, 450);
        glColor3f(0.0, 0.0, 1.0);
        glVertex2i(250, 150);
        glColor3f(0.0, 1.0, 0.0);
        glVertex2i(550, 150);
        glColor3f(1.0, 0.0, 0.0);
        glVertex2i(550, 450);
        glEnd();
 
        glutSwapBuffers();
}
 
void reshape(int w, int h)
{
        glViewport(0, 0, w, h);
 
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluOrtho2D(0, w, 0, h);
 
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
}
 
int main (int argc, char * argv[])
{
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA); /*Включаем двойную буферизацию и четырехкомпонентный цвет*/
 
        glutInitWindowSize(800, 600);
        glutCreateWindow("OpenGL lesson 1");
 
        glutReshapeFunc(reshape);
        glutDisplayFunc(display);
 
        glutMainLoop();
 
        return 0;
}
test_window.pro:
C++ (Qt)
1
2
3
4
5
6
7
8
9
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
 
SOURCES += main.cpp
 
INCLUDEPATH += "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Include/gl"
LIBS += -L"C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib" -lopengl32 -lglut32 -lglu32
Консоль сборки:
Код
17:34:20: Выполняются этапы для проекта test_window...
17:34:20: Настройки не изменились, этап qmake пропускается.
17:34:20: Запускается: «C:\Qt\Tools\QtCreator\bin\jom.exe» 
	C:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
	echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\\test_window.exe.embed.manifest">debug\test_window.exe_manifest.rc
	if not exist debug\test_window.exe if exist debug\test_window.exe.embed.manifest del debug\test_window.exe.embed.manifest
	if exist debug\test_window.exe.embed.manifest copy /Y debug\test_window.exe.embed.manifest debug\test_window.exe_manifest.bak
	link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\test_window.exe.embed.manifest /OUT:debug\test_window.exe @C:\Temp\test_window.exe.7188.0.jom
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glBegin@4 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClear@4 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glColor3f@12 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnd@0 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glLoadIdentity@0 в функции "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glMatrixMode@4 в функции "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glVertex2i@8 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glViewport@16 в функции "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _gluOrtho2D@32 в функции "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInit@8 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInitDisplayMode@4 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutInitWindowSize@8 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutMainLoop@0 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutCreateWindow@4 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutSwapBuffers@0 в функции "void __cdecl display(void)" (?display@@YAXXZ)
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutDisplayFunc@4 в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _glutReshapeFunc@4 в функции _main
debug\test_window.exe : fatal error LNK1120: неразрешенных внешних элементов: 17
jom: C:\Users\nixon\Documents\Qt\Consol_Program_for_OpenGL\build-test_window-Desktop_Qt_5_3_MSVC2012_OpenGL_32bit-Debug\Makefile.Debug [debug\test_window.exe] Error 1120
jom: C:\Users\nixon\Documents\Qt\Consol_Program_for_OpenGL\build-test_window-Desktop_Qt_5_3_MSVC2012_OpenGL_32bit-Debug\Makefile [debug] Error 2
17:34:21: Процесс «C:\Qt\Tools\QtCreator\bin\jom.exe» завершился с кодом 2.
Ошибка при сборке/установке проекта test_window (комплект: Desktop Qt 5.3 MSVC2012 OpenGL 32bit)
Во время выполнения этапа «Сборка»
17:34:21: Прошло времени: 00:01.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
07.07.2014, 17:10     Как правильно подключить lib #11
Цитата Сообщение от InfoMaster Посмотреть сообщение
Консоль сборки:
Помнится - ms не использует ключ -l

Код
LIBS +=-L"C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib" opengl32 glut32 glu32
Странно, что в консоли ключей линкера вообще не видно.
InfoMaster
25 / 14 / 1
Регистрация: 12.08.2011
Сообщений: 276
07.07.2014, 17:56  [ТС]     Как правильно подключить lib #12
Убрал -l ... толку нет... одни и те же ошибки ... Не находит библиотеки ... в чем же проблема ...
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
07.07.2014, 18:04     Как правильно подключить lib #13
Попробуй дописать .lib в конце имени каждой библиотеки.
InfoMaster
25 / 14 / 1
Регистрация: 12.08.2011
Сообщений: 276
07.07.2014, 18:14  [ТС]     Как правильно подключить lib #14
К сожалению не помогает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2014, 18:17     Как правильно подключить lib
Еще ссылки по теме:

Как правильно подключить curl библиотеку? - C++
Здравствуйте, я хотел в своем проекте использовать библиотеку curl, для этого я: 1. Скачал архив з оф. сайта. 2. Затем по инструкции в...

Как правильно подключить библиотеку SDL - C++
Здравствуйте, подскажите, пожалуйста, как правильно подключить библиотеку SDL. Я пользуюсь компилятором Code::Blocks. При подключении...

Как правильно подключить данную библиотеку ? - C++
Доброго времени суток подскажите пожалуйста как правильно подключить данную библиотеку в C++Builder 10.1 Berlin скачка библиотеки...

Как правильно подключить шаблонный класс (VS2008)? - C++
Добрый день! Помогите в подключении шаблонного класса в Visual Studio 2008 Professional. Создал консольный проект,в заголовочном...

Как правильно из одного cpp подключить другой - C++
Есть 2 .cpp файла: a.cpp и b.cpp. Когда пишу: /* a.cpp */ #include &quot;b.cpp&quot; Выдает ошибку. Как правильно из одного cpp...


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

Или воспользуйтесь поиском по форуму:
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
07.07.2014, 18:17     Как правильно подключить lib #15
Цитата Сообщение от InfoMaster Посмотреть сообщение
К сожалению не помогает
Что-то странное. Без проблем собирал приложения под ms из Creator.
Yandex
Объявления
07.07.2014, 18:17     Как правильно подключить lib
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru