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

Подключение библиотек в Eclipse c++ - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.97
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
02.06.2013, 12:49     Подключение библиотек в Eclipse c++ #1
Решил заняться OpenGL и сказал парочку библиотек. Решил добавить их в Eclipse и провалился. Дело в том, что я ни разу такое не делал. В скачанном архиве есть папки includes и lib. я добавляю их через properties-path and symbols проекта соответственно в includes и libraries. и у меня при сборке вылезает такая борода c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lC:\Users\Admin\workspace\test\glew-1.9.0\lib\glew32.lib , хотя все там на месте. в чем прикол, может у кого было такое ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 12:49     Подключение библиотек в Eclipse c++
Посмотрите здесь:

Подключение библиотек C++
C++ Подключение библиотек
C++ подключение библиотек include
Подключение библиотек C++
подключение библиотек C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
02.06.2013, 13:13     Подключение библиотек в Eclipse c++ #2
http://wiki.eclipse.org/CDT/User/FAQ....2B_project.3F
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
02.06.2013, 13:35  [ТС]     Подключение библиотек в Eclipse c++ #3
да там написано все тоже самое. я все перепробовал. у меня проблема в том, что почему-то не видит моих библиотек. может, потому что параметр -l прилепился к букве диска С в сообщении об ошибке... может, по этому пути он ищет и, естественно, не находит ничего
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
02.06.2013, 15:20     Подключение библиотек в Eclipse c++ #4
-l это указание линкеру линковаться с данной либой. Сделайте скриншот посмотрим что вы там написали
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
04.06.2013, 12:39  [ТС]     Подключение библиотек в Eclipse c++ #5
ну давайте по порядочку.
Вот мои includes
C++
1
2
#include <GL/glew.h>
#include <GL/glut.h>
В скринах предоставил настройки. Кстати в папке freeglut нет папки lib!!! может из-за неё вся каша?? кстати эклипс нормально работает без этих библиотек, то есть обычные проги можно писать.

Вот полный лог того, что мне выводит, когда я нажимаю билд:

12:25:10 **** Incremental Build of configuration Debug for project test ****
Info: Internal Builder is used for build
g++ "-LC:\\Users\\Admin\\workspace\\test\\glew-1.9.0\\lib" -o test.exe "src\\test.o" "..\\glew-1.9.0\\lib\\glew32.lib" "..\\glew-1.9.0\\lib\\glew32mx.lib" "..\\glew-1.9.0\\lib\\glew32mxs.lib" "..\\glew-1.9.0\\lib\\glew32s.lib"
src\test.o: In function `glutInit_ATEXIT_HACK':
C:/Users/Admin/workspace/test/freeglut-2.8.1/include/GL/freeglut_std.h:620: undefined reference to `_imp____glutInitWithExit@12'
src\test.o: In function `glutCreateWindow_ATEXIT_HACK':
C:/Users/Admin/workspace/test/freeglut-2.8.1/include/GL/freeglut_std.h:622: undefined reference to `_imp____glutCreateWindowWithExit@8'
src\test.o: In function `glutCreateMenu_ATEXIT_HACK':
C:/Users/Admin/workspace/test/freeglut-2.8.1/include/GL/freeglut_std.h:624: undefined reference to `_imp____glutCreateMenuWithExit@8'
src\test.o: In function `render':
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:24: undefined reference to `glClearColor@16'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:25: undefined reference to `glClear@4'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:27: undefined reference to `_imp__glutSwapBuffers@0'
src\test.o: In function `main':
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:36: undefined reference to `_imp__glutInitDisplayMode@4'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:37: undefined reference to `_imp__glutInitWindowSize@8'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:39: undefined reference to `_imp__glutIdleFunc@4'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:40: undefined reference to `_imp__glutDisplayFunc@4'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:42: undefined reference to `_imp__glewInit@0'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:43: undefined reference to `_imp____GLEW_VERSION_2_0'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:53: undefined reference to `_imp__glutMainLoop@0'
collect2: выполнение ld завершилось с кодом возврата 1

12:25:10 Build Finished (took 251ms)


Кто-нибудь может помочь? Я запарился уже. Кстати на буке (там у меня нет интернета) пробовал с VS 2012 - он мне как то родил папку с либами и freeglut.dll, freeglut.lib... И вроде как получается, но как-то криво... Но не суть, мне нужно, чтобы работало в эклипсе.

вот код самой проги(копипаст с http://duriansoftware.com/joe/An-int...Slideshow.html)

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
#include <stdlib.h>
#include <GL/glew.h>
#include <GL/glut.h>
#include <stdio.h>
 
static int make_resources(void)
{
    return 1;
}
 
/*
 * GLUT callbacks:
 */
static void update_fade_factor(void)
{
}
 
static void render(void)
{
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
 
    glutSwapBuffers();
}
 
/*
 * Entry point
 */
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
    glutInitWindowSize(400, 300);
    glutCreateWindow("Hello World");
    glutIdleFunc(&update_fade_factor);
    glutDisplayFunc(&render);
 
    glewInit();
    if (!GLEW_VERSION_2_0) {
        fprintf(stderr, "OpenGL 2.0 not available\n");
        return 1;
    }
 
    if (!make_resources()) {
        fprintf(stderr, "Failed to load resources\n");
        return 1;
    }
 
    glutMainLoop();
    return 0;
}
Миниатюры
Подключение библиотек в Eclipse c++   Подключение библиотек в Eclipse c++   Подключение библиотек в Eclipse c++  

XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
04.06.2013, 13:01     Подключение библиотек в Eclipse c++ #6
как то так
Миниатюры
Подключение библиотек в Eclipse c++  
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
04.06.2013, 13:04     Подключение библиотек в Eclipse c++ #7
bezoomec,
начните с того, что почитайте какие библиотеки Вам надо.
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
04.06.2013, 14:33  [ТС]     Подключение библиотек в Eclipse c++ #8
XRuZzz, ваш способ абсолютно идентичен

stima, я знаю,что мне нужно. просто рассчитывал на то, что тут будет человек, который через это прошел
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
04.06.2013, 14:38     Подключение библиотек в Eclipse c++ #9
Хорошо, давайте по порядку.
Какие библиотеки вы собираетесь использовать?
Matan!
13 / 13 / 1
Регистрация: 31.05.2013
Сообщений: 208
Записей в блоге: 1
Завершенные тесты: 1
04.06.2013, 14:45     Подключение библиотек в Eclipse c++ #10
Скорее всего,дело в Eclipse.Какая у Вас версия?Фирма Oracle выпускает Eclipse для С/С++ - разработчиков.На офсайте так она и называется.
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
04.06.2013, 14:48     Подключение библиотек в Eclipse c++ #11
2Matan! не говорите того чего не знаете.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
04.06.2013, 15:14     Подключение библиотек в Eclipse c++ #12
Цитата Сообщение от Matan! Посмотреть сообщение
Фирма Oracle выпускает Eclipse для С/С++ - разработчиков.
А кто такой Eclipse Foundation тогда? Oracle ничего бесплатно не делает

Да я компилировал проекты с glut на Eclipse + MinGW (там всё делается элементарно, если знаешь). Я дал ему дельный совет. Но товарищ сам куда то пропал.
Matan!
13 / 13 / 1
Регистрация: 31.05.2013
Сообщений: 208
Записей в блоге: 1
Завершенные тесты: 1
04.06.2013, 15:25     Подключение библиотек в Eclipse c++ #13
Цитата Сообщение от XRuZzz Посмотреть сообщение
А кто такой Eclipse Foundation тогда? Oracle ничего бесплатно не делает

Да я компилировал проекты с glut на Eclipse + MinGW (там всё делается элементарно, если знаешь). Я дал ему дельный совет. Но товарищ сам куда то пропал.
Я имел ввиду
Eclipse IDE for C/C++ Developers из сайта www.eclipse.org/downloads/
Может,я что-то не так понял.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
04.06.2013, 15:39     Подключение библиотек в Eclipse c++ #14
Цитата Сообщение от Matan! Посмотреть сообщение
Я имел ввиду
Eclipse IDE for C/C++ Developers из сайта www.eclipse.org/downloads/
Может,я что-то не так понял.
Да это понятно. Совет хороший, но у него компилятор ругается. Я лично всегда Eclipse Classic качаю, потом сам ставлю нужные плагины. Eclipse -это платформа. Eclipse IDE for C/C++ Developers - это набор плагинов с платформой Eclipse, то есть это не отдельная версия Eclipse. текущая версия у Eclipse - 4.2
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
04.06.2013, 15:43  [ТС]     Подключение библиотек в Eclipse c++ #15
Matan!, нет. codeblocks тоже выпендривается. на эклипсах пробовал разных - и для java с установленным CDT и для С++ dev.
stima, freeglut, glew
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
04.06.2013, 16:17     Подключение библиотек в Eclipse c++ #16
Цитата Сообщение от bezoomec Посмотреть сообщение
Matan!, нет. codeblocks тоже выпендривается. на эклипсах пробовал разных - и для java с установленным CDT и для С++ dev.
stima, freeglut, glew
а что вам не понятно в моём ответе? там где опция -L мы прописываем путь к библиотекам. А там где опция -l мы прописываем сами библиотеки. я точно не знаю как у вас называются библиотеки.

Может это glew glut может freeglut. Я зная только то, что это должно быть похоже на -lglew -lglut либо -lglew -lfreeglut либо ещё какие библиотеки нужно прописать.

Ну что мне самому freeglut чтоли качать чтоб вам помочь?

Там где у вас вкладка Libraries вы показали тока нижнюю часть скриншота, а вы покажите верхнюю. Она не должна быть пусть в Glut проекте.

Добавлено через 5 минут
Видите у меня на скриншоте выбран раздел Paths and Symbols это более глобальный раздел(но не выходит за рамки настроек одного проекта, если вы находитесь в свойствах проекта), чем тот в котором вы настраиваете. Поэтому правильнее прописывать все пути в разделе Paths and Symbols

Добавлено через 11 минут
и вот правильный набор библиотек
Bash
1
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows
по ходу для 32-битных приложений
из статьи на хабре
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
04.06.2013, 16:57     Подключение библиотек в Eclipse c++ #17
Цитата Сообщение от bezoomec Посмотреть сообщение
stima, freeglut, glew
Нет. Как Вам уже сказал XRuZzz. Должен быть еще -lopengl32 -lglu32
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
04.06.2013, 21:37  [ТС]     Подключение библиотек в Eclipse c++ #18
спасибо, завтра буду пробовать и отпишу что как
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
12.06.2013, 16:00  [ТС]     Подключение библиотек в Eclipse c++ #19
XRuZzz, по инструкции с хабра сделал все, тем не менее ошибки лезут.

Кто может помочь мне? Честное слово, я уже все перепробовал. После того, как все подключил, все либы и инклуды, показывает такую картину:

15:49:43 **** Incremental Build of configuration Debug for project test ****
Info: Internal Builder is used for build
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\test.o" "..\\src\\test.cpp"
g++ "-LC:\\MinGW\\lib" -o test.exe "src\\test.o"
src\test.o: In function `glutInit_ATEXIT_HACK':
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../include/GL/freeglut_std.h:620: undefined reference to `_imp____glutInitWithExit@12'
src\test.o: In function `glutCreateWindow_ATEXIT_HACK':
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../include/GL/freeglut_std.h:622: undefined reference to `_imp____glutCreateWindowWithExit@8'
src\test.o: In function `glutCreateMenu_ATEXIT_HACK':
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../include/GL/freeglut_std.h:624: undefined reference to `_imp____glutCreateMenuWithExit@8'
src\test.o: In function `main':
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:9: undefined reference to `_imp__glutInitDisplayMode@4'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:10: undefined reference to `_imp__glutInitWindowSize@8'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:11: undefined reference to `_imp__glutInitContextVersion@8'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:12: undefined reference to `_imp__glutInitContextProfile@4'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:15: undefined reference to `_imp__glewInit@0'
C:\Users\Admin\workspace\test\Debug/../src/test.cpp:20: undefined reference to `_imp__glutMainLoop@0'
collect2: выполнение ld завершилось с кодом возврата 1

15:49:45 Build Finished (took 1s.671ms)


а вот и сам код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <GL/glew.h>
#include <GL/freeglut.h>
#include <GL/gl.h>
 
int main(int argc, char** argv) {
 
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA);
    glutInitWindowSize(512, 512);
    glutInitContextVersion(4, 1);
    glutInitContextProfile(GLUT_CORE_PROFILE);
    glutCreateWindow(argv[0]);
 
    if (glewInit()) {
        std::cerr << "Unable to initialize GLEW ... exiting\n";
        exit(EXIT_FAILURE);
    }
 
    glutMainLoop();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2013, 21:04     Подключение библиотек в Eclipse c++
Еще ссылки по теме:

GUI С++ в eclipse без дополнительных библиотек C++
Подключение библиотек в GUI C++
C++ Подключение библиотек

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

Или воспользуйтесь поиском по форуму:
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
12.06.2013, 21:04     Подключение библиотек в Eclipse c++ #20
ну у меня в Gentoo компиляция проходит с указанием таких библиотек на вкладке Libraries
GL
glut
GLEW

скорее всего проблема в том нужно найти правильное название для указания этих библиотек

причем я успешно скомпилировал оба исходника которые ты выкладывал в теме :P

Добавлено через 7 минут
Там надо учитывать флаг -m64 или -m32 . У меня по умолчанию компилируется в -m64 так как система 64-битная
путь к библиотекам по умолчанию у меня указывается /usr/lib64 - там как раз и стоит freeglut и glew и всё остальное.

Добавлено через 5 минут
если бы у вас стоял линух я бы вам просто кинул файл проекта и вам было бы намного легче скомпилить. А так наверно нет смысла вам давать файл проекта

Добавлено через 17 минут
ещё надо устанавливать настройки не только для Debug режима но и для Release. Для этого в элементе выбора конфигурации выбрать All configurations, и потом только устанавливать опции

Добавлено через 19 минут
+ не помешает прочитать темы freeglut, MinGW
GLUT: undefined reference to...
я уж их читать не буду )
Yandex
Объявления
12.06.2013, 21:04     Подключение библиотек в Eclipse c++
Ответ Создать тему
Опции темы

Текущее время: 18:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru