Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
#1

freeglut, MinGW - C++

28.11.2012, 01:54. Просмотров 2923. Ответов 10
Метки нет (Все метки)

Не получается мне в IDE работать. Прочитал несколько туториалов, не помогло
Сделал, все, как тут указано. Скачал freeglut-2.8.0 для MinGW, закинул либы, инклюды, дллки, последние даже в C:\Windows и C:\SysWow64 пихнул. при компиляции даю папку со своим установленным mingw. Сборка проекта - fail.

Код
||=== Test2, Debug ===|
ld.exe||cannot find -lfreeglut|
||=== Build finished: 1 errors, 0 warnings ===|
Смотрю build log:
Кликните здесь для просмотра всего текста
Код
-------------- Build: Debug in Test2 ---------------

Compiling: main.cpp
Linking console executable: bin\Debug\Test2.exe
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible D:\mingw\lib/libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible D:\mingw\lib\libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/lib/../lib/libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/lib/../lib\libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../lib/libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../lib\libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/lib/libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/lib\libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../..\libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible D:\mingw\lib/libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/lib/../lib/libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../lib/libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/lib/libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../libfreeglut.a when searching for -lfreeglut
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lfreeglut
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings


IDE: CodeBlocks, ОС: Windows, mingw ставил отдельно (сборку от niXman).

Помогите разобраться с причиной, почему не видит либу? Хочу игрушку свою на винде скомпилить, чтоб exe-шник был, своим друзьям разослать)

Не по теме:

А как приятно было компилить в консольке на лине. Хочешь - написал -lglut при компиляции и гуд. Да и в Dev-e проблем с freeglut-ом не было.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 01:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос freeglut, MinGW (C++):

Может ли MinGW x64 компилить приложения x32? Или нужно для этого отдельно ещё MinGW х32 качать? - C++
Просто решил поиграться с CodeLite.

Mingw-w64 MinGW TDM-GCC - C++
Всем привет. Хочу понять, существует ли принципиальная разница между Mingw-w64, MinGW и TDM-GCC? Какие плюсы/минусы у этих трех...

Компиляция кода Freeglut - C++
Здравствуйте. Стоит Ubuntu 12.10, компилятор g++ , библиотеку freeglut поставил из репозитория, после чего инклуды появились нужном месте в...

Кириллица в openGL (glut, freeglut) или (!) альтернатива - C++
Ребят уже целый вечер гуглю. Недельку назад начал плотно изучать C++. С графикой вообще интересно, Арканоиды там всякие и т.п. И вот...

Mingw studio - C++
Мне очень нравится Mingw Studio, не хотелось бы переходить на другую среду, но недавно узнал, что вшитая версия компилятора там...

Компиляция в g++ из MinGW - C++
Добрый день! После скачивания и установки MinGW пытаюсь скомпилировать простую программу из разряда Hello, World! Набирая в...

10
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
28.11.2012, 01:58 #2
MrGluck, эти ошибки означают, что Вы пытаетесь собрать 32 битное приложение с 64 битными библиотеками, или наоборот, что и есть скорей всего, 64 битное приложение с 32 битными библиотеками. В параметрах компиляции напишите -m32

Добавлено через 1 минуту
И еще - если у Вас 64 битный компилятор, то библиотеки нужно было помещать в lib32 а не lib. Да и вообще их лучше держать в отдельной папке, и дописывать путь до них при компиляции.
1
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
28.11.2012, 02:07  [ТС] #3
Цитата Сообщение от Toshkarik Посмотреть сообщение
MrGluck, эти ошибки означают, что Вы пытаетесь собрать 32 битное приложение с 64 битными библиотеками, или наоборот, что и есть скорей всего, 64 битное приложение с 32 битными библиотеками. В параметрах компиляции напишите -m32

Добавлено через 1 минуту
И еще - если у Вас 64 битный компилятор, то библиотеки нужно было помещать в lib32 а не lib. Да и вообще их лучше держать в отдельной папке, и дописывать путь до них при компиляции.
Закинул заодно libfreeglut.a и libfreeglut_static.a во все папки lib и lib32, что нашел. Указал в ключах -m32, тот же результат.

Добавлено через 2 минуты
Пробовал также добавить либы к проекту таким способом: Project-> Build Options -> Linker settings, там в link libraries указывал путь к данным либам, безуспешно.
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
28.11.2012, 02:08 #4
А где качали? На их сайте только исходники. Думаю Вам стоит собрать библиотеки для Вашей версии компилятора.
1
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
28.11.2012, 02:10  [ТС] #5
И вообще, почему "skipping incompatible" ? У меня подозрение, что все нормально линкует, а вот сама библиотека не подходит.

Добавлено через 1 минуту
Отсюда брал:
http://www.transmissionzero.co.uk/computing/using-glut-with-mingw/
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
28.11.2012, 02:12 #6
Это означает, что библиотека не совместима с линковщиком. Часто такое бывает когда пытаются слинковать библиотеки не предназначены для целевой архитектуры.
1
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
28.11.2012, 02:17  [ТС] #7
Цитата Сообщение от Toshkarik Посмотреть сообщение
Это означает, что библиотека не совместима с линковщиком. Часто такое бывает когда пытаются слинковать библиотеки не предназначены для целевой архитектуры.
Не подскажете, как она собирается на винде?) На главном сайте инструкция для линя, это то я как-раз знаю. А для не *nix системы инстал не описан
Попробую с исходников скомпилить.
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
28.11.2012, 02:19 #8
И так, собрал из исходников. Пример из приведенной ссылки нормально компилируется и запускается. Могу скинуть архив с библиотекой. Собирал на 4.7.2 сборки niXman`a. На нем точно будет работать, на других - не знаю. И собирал для x86_64.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
28.11.2012, 02:20  [ТС] #9
Цитата Сообщение от Toshkarik Посмотреть сообщение
И так, собрал из исходников. Пример из приведенной ссылки нормально компилируется и запускается. Могу скинуть архив с библиотекой. Собирал на 4.7.2 сборки niXman`a. На нем точно будет работать, на других - не знаю. И собирал для x86_64.
Буду благодарен
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
28.11.2012, 02:26 #10
MrGluck, как и любые другие программы из исходников. Запускаете sh из MSys, далее в нем заходите в каталог с исходниками и:
Bash
1
2
3
./configure --prefix=C:\freeglut
make
make install
Добавлено через 5 минут
Отправил в личку, так как думаю модераторы не одобрят ссылку на файлообменник. Компилировал этот код:
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
#include <stdlib.h>
#include <GL/glut.h>
 
void keyboard(unsigned char key, int x, int y);
void display(void);
 
 
int main(int argc, char** argv)
{
  glutInit(&argc, argv);
  glutCreateWindow("GLUT Test");
  glutKeyboardFunc(&keyboard);
  glutDisplayFunc(&display);
  glutMainLoop();
 
  return EXIT_SUCCESS;
}
 
 
void keyboard(unsigned char key, int x, int y)
{
  switch (key)
  {
    case '\x1B':
      exit(EXIT_SUCCESS);
      break;
  }
}
 
 
void display()
{
  glClear(GL_COLOR_BUFFER_BIT);
 
  glColor3f(1.0f, 0.0f, 0.0f);
 
  glBegin(GL_POLYGON);
    glVertex2f(-0.5f, -0.5f);
    glVertex2f( 0.5f, -0.5f);
    glVertex2f( 0.5f,  0.5f);
    glVertex2f(-0.5f,  0.5f);
  glEnd();
 
  glFlush();
}
С такими ключами:
Bash
1
g++ example.cpp -IC:\freeglut\include -LC:\freeglut\lib -lglut -lopengl32 -o example
1
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
28.11.2012, 02:38  [ТС] #11
Чертовщина какая-то. Заменил все файлы - результат тот же.
Вот, файл проекта:
Кликните здесь для просмотра всего текста
Код
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
	<FileVersion major="1" minor="6" />
	<Project>
		<Option title="test5" />
		<Option pch_mode="2" />
		<Option compiler="gcc" />
		<Build>
			<Target title="Debug">
				<Option output="bin\Debug\test5" prefix_auto="1" extension_auto="1" />
				<Option working_dir="D:\mingw\bin" />
				<Option object_output="obj\Debug\" />
				<Option type="1" />
				<Option compiler="gcc" />
				<Compiler>
					<Add option="-g" />
				</Compiler>
			</Target>
			<Target title="Release">
				<Option output="bin\Release\test5" prefix_auto="1" extension_auto="1" />
				<Option working_dir="D:\mingw\bin" />
				<Option object_output="obj\Release\" />
				<Option type="0" />
				<Option compiler="gcc" />
				<Compiler>
					<Add option="-O2" />
				</Compiler>
				<Linker>
					<Add option="-s" />
				</Linker>
			</Target>
		</Build>
		<Compiler>
			<Add option="-Wall" />
			<Add directory="D:\mingw\include" />
		</Compiler>
		<Linker>
			<Add library="freeglut" />
			<Add library="opengl32" />
			<Add library="glu32" />
			<Add library="winmm" />
			<Add library="gdi32" />
			<Add directory="D:\mingw\lib" />
		</Linker>
		<Unit filename="main.cpp" />
		<Extensions>
			<code_completion />
			<debugger />
		</Extensions>
	</Project>
</CodeBlocks_project_file>

По указанным путям лежат все нужные либы.
Завтра попробую библиотеку сам скомпилить, мб ругается на архитектуру. Не выйдет - поставлю Dev, там freeglut ставился в пару кликов из самой IDE.
0
28.11.2012, 02:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2012, 02:38
Привет! Вот еще темы с ответами:

компилятор mingw - C++
Установил Dev-Cpp попробовал скомпилировать проект.Вот такая штука на экране.Ясно что дело не в коде.пробовал разные среды разработки...

MinGW mysql - C++
Здравствуйте, объясните пожалуйста как заставить компилятор g++ работать с функциями mysql, нужен пример компиляции у меня ничего не...

MinGW + OpenGL - C++
Как прикрутить OpenGL к MinGW(C++)? Это вообще реально? Сколько перепробовал, не работает(Не исключаю &quot;прямоту&quot; своих рук). После...

Notepad ++ и MinGW - C++
Здравствуйте, у меня возник вопрос, как можно интегрировать notepad++ и mingw ? Заранее спасибо!


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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