Добрый день.
У меня такая проблема — написал небольшой квест. Он компилируется и запускается только на одном компьютере. На других прости дополнительные библиотеки (libgcc_s_dw2-1.dll, libstdc++-6.dll, glew32.dll). Я их нашел и скачал, но приложение запускается и вылетает с ошибкой — "Приложение будет закрыто". Использовал openGL и freeglut, компилятор MinGW и IDE — Eclipse.
Вроде поможет статическая сборка, но как ее сделать в эклипсе? Заранее благодарен.
Re: Как собрать игру, что бы запустить на других компьютерах
Здравствуйте, Conso, Вы писали:
C>Добрый день. C>У меня такая проблема — написал небольшой квест. Он компилируется и запускается только на одном компьютере. На других прости дополнительные библиотеки (libgcc_s_dw2-1.dll, libstdc++-6.dll, glew32.dll). Я их нашел и скачал, но приложение запускается и вылетает с ошибкой — "Приложение будет закрыто". Использовал openGL и freeglut, компилятор MinGW и IDE — Eclipse. C>Вроде поможет статическая сборка, но как ее сделать в эклипсе? Заранее благодарен.
"у меня MSVC и всё работает"
я извиняюсь за флейм, но не могу не отметить что опенсорсный гцц это конечно круто и может даже кроссплатформенно (.dll?), но если вы не можете его осилить, то зачем за него браться? А если взялись — то зачем плакаться на форумах что ниасилили? Читайте документацию. Любите опенсорс — читайте исходники.
зачем вообще браться за гцц если не знаете "как сделать статическую сборку в эклипсе"?
зачем вообще юзать этот гцц+эклипс, если при появлении вашей ошибки вы не можете посмотреть в отладчике что произошло в программе?
In Zen We Trust
Re[2]: Как собрать игру, что бы запустить на других компьюте
Здравствуйте, Abyx, Вы писали:
A>"у меня MSVC и всё работает" A>я извиняюсь за флейм, но не могу не отметить что опенсорсный гцц это конечно круто и может даже кроссплатформенно (.dll?), но если вы не можете его осилить, то зачем за него браться? А если взялись — то зачем плакаться на форумах что ниасилили? Читайте документацию. Любите опенсорс — читайте исходники.
A>зачем вообще браться за гцц если не знаете "как сделать статическую сборку в эклипсе"? A>зачем вообще юзать этот гцц+эклипс, если при появлении вашей ошибки вы не можете посмотреть в отладчике что произошло в программе?
Я вроде не писал что не могу его осилить. Да и плакаться я не начинал. Если честно, я не так давно программирую под гцц, и многого не знаю. Просто задал вопрос, в надежде на подсказку.
Что Вы хотели сказать сообщением написанным именно в такой форме?
Re: Как собрать игру, что бы запустить на других компьютерах
Здравствуйте, Conso, Вы писали:
C>У меня такая проблема — написал небольшой квест. Он компилируется и запускается только на одном компьютере. На других прости дополнительные библиотеки (libgcc_s_dw2-1.dll, libstdc++-6.dll, glew32.dll). Я их нашел и скачал, но приложение запускается и вылетает с ошибкой — "Приложение будет закрыто". Использовал openGL и freeglut, компилятор MinGW и IDE — Eclipse. C>Вроде поможет статическая сборка, но как ее сделать в эклипсе? Заранее благодарен.
Если не вдаваться в детали и не усложнять всё, то ошибка в выделенном. Несовпадение версий, ключей компиляции, чего-либо ещё — и программа крешится. Надо брать эти библиотеки со своей (той, на которой запускается программа) машины. Они могут находится в каталогах компилятора, установлены в %SYSTEMROOT%\system32 или где-то в подобных местах, куда может дотянуться LoadLibrary.
Что касается статической сборки, нужно указать ключ
-static-libgcc
(Где-то здесь: в Project->Properties->C/C++ Build->Settings : MinGW C++ Linker->Miscellaneous, в графе Linker flags — с eclipse работал давно (и давно его не обновлял), точнее не скажу).
Однако, такие библиотеки как glew32 придётся всё равно таскать с собой.
Re[3]: Как собрать игру, что бы запустить на других компьюте
Здравствуйте, Conso, Вы писали:
C>Здравствуйте, Abyx, Вы писали:
A>>"у меня MSVC и всё работает" A>>я извиняюсь за флейм, но не могу не отметить что опенсорсный гцц это конечно круто и может даже кроссплатформенно (.dll?), но если вы не можете его осилить, то зачем за него браться? А если взялись — то зачем плакаться на форумах что ниасилили? Читайте документацию. Любите опенсорс — читайте исходники.
A>>зачем вообще браться за гцц если не знаете "как сделать статическую сборку в эклипсе"? A>>зачем вообще юзать этот гцц+эклипс, если при появлении вашей ошибки вы не можете посмотреть в отладчике что произошло в программе?
C>Я вроде не писал что не могу его осилить. Да и плакаться я не начинал. Если честно, я не так давно программирую под гцц, и многого не знаю. Просто задал вопрос, в надежде на подсказку.
все подсказки написаны в справке.
"многого не знаю" — и не узнаете пока не начнете ее читать
C>Что Вы хотели сказать сообщением написанным именно в такой форме?
то что есть простой и удобный MSVC с нормальной документацией в msdn, заботливо проиндексированной гуглом.
и есть mingw+какая-то-ИДЕ+какие-то еще утилиты (отладчик например), и на эту связку документация тоже есть, но она разбросана по разным сайтам (сайт мингв, гцц, ИДЕ, ..., ...).
так вот если вы взялись за мингв — подразумевается что у вас должен быть уровень достаточный чтобы разобраться с этим самостоятельно.
а не спрашивать "у меня программа не запускается, выдает окно с ошибкой, как компилировать этой ИДЕ?"
что вы сделали перед тем как написать этот вопрос на форуме?
посмотрели список длл импортируемых программой?
посмотрели в отладчике изза чего появляется сообщение об ошибке?
если подозреваете что дело в динамическом рантайме — пробовали компилить со статическим, из консоли (раз не разобрались с ИДЕ)?
In Zen We Trust
Re[4]: Как собрать игру, что бы запустить на других компьюте
Здравствуйте, Abyx, Вы писали:
A>то что есть простой и удобный MSVC с нормальной документацией в msdn, заботливо проиндексированной гуглом.
Так это... Разве он под MSVC/любым-другим-компилятором-с-любой-другой-IDE не столкнётся с той же самой проблемой, скажем, положив не ту версию glew32.dll своей программе на другой машине?
И разве поиск по документации не даст тот же самый результат в этом случае?
Re[4]: Как собрать игру, что бы запустить на других компьюте
C>>На других прости дополнительные библиотеки (libgcc_s_dw2-1.dll, libstdc++-6.dll, glew32.dll). Я их нашел и скачал, но приложение запускается и вылетает с ошибкой — "Приложение будет закрыто". Использовал openGL и freeglut, компилятор MinGW и IDE — Eclipse.
Приложите родные либы, которые есть у Вас на компе. Перенесите на другой.
Уже написали про несовместимость.
C>>Вроде поможет статическая сборка, но как ее сделать в эклипсе?
Пока не надо мудрить.
Re: Как собрать игру, что бы запустить на других компьютерах
Здравствуйте, Conso, Вы писали:
C>Добрый день. C>У меня такая проблема — написал небольшой квест. Он компилируется и запускается только на одном компьютере. На других прости дополнительные библиотеки (libgcc_s_dw2-1.dll, libstdc++-6.dll, glew32.dll). Я их нашел и скачал, но приложение запускается и вылетает с ошибкой — "Приложение будет закрыто". Использовал openGL и freeglut, компилятор MinGW и IDE — Eclipse. C>Вроде поможет статическая сборка, но как ее сделать в эклипсе? Заранее благодарен.
У Вас, судя по всему, последняя версия MinGW. Эти библиотеки качать не надо, они лежат в каталоге bin\ (чаще всего). Советую Вам начать изучение gcc с более ранней версии, например gcc 3.4.5. Попробуйте, напишите как получилось. Желаю успеха.
Жизнеспособность прямо пропорциональна простоте!
Re: Как собрать игру, что бы запустить на других компьютерах
Здравствуйте, Conso, Вы писали:
C>Добрый день. C>У меня такая проблема — написал небольшой квест. Он компилируется и запускается только на одном компьютере. На других прости дополнительные библиотеки (libgcc_s_dw2-1.dll, libstdc++-6.dll, glew32.dll). Я их нашел и скачал, но приложение запускается и вылетает с ошибкой — "Приложение будет закрыто". Использовал openGL и freeglut, компилятор MinGW и IDE — Eclipse. C>Вроде поможет статическая сборка, но как ее сделать в эклипсе? Заранее благодарен.
-static-libstdc++ -static-libgcc
а вот glew32.dll кладете рядом с программой.
я не волшебник, я только учусь!
Re[4]: Как собрать игру, что бы запустить на других компьюте
Здравствуйте, Abyx, Вы писали:
A>так вот если вы взялись за мингв — подразумевается что у вас должен быть уровень достаточный чтобы разобраться с этим самостоятельно. A>а не спрашивать "у меня программа не запускается, выдает окно с ошибкой, как компилировать этой ИДЕ?"
Иногда беруться в последний момент, и mingw не всегда основная платформа, а так фришная замена MSVC.
A>что вы сделали перед тем как написать этот вопрос на форуме? A>посмотрели список длл импортируемых программой? A>посмотрели в отладчике изза чего появляется сообщение об ошибке? A>если подозреваете что дело в динамическом рантайме — пробовали компилить со статическим, из консоли (раз не разобрались с ИДЕ)?
Зря ругаешь, на самом деле месяцев Н назад была тажа проблема, залез в гугль и сразу все нашел. Доки не читал, гугль быстрее.
З.Ы. знаю, плохо, но таков я
я не волшебник, я только учусь!
Re: Как собрать игру, что бы запустить на других компьютерах
Здравствуйте, Conso, Вы писали:
C>Добрый день. C>У меня такая проблема — написал небольшой квест. Он компилируется и запускается только на одном компьютере. На других прости дополнительные библиотеки (libgcc_s_dw2-1.dll, libstdc++-6.dll, glew32.dll). Я их нашел и скачал, но приложение запускается и вылетает с ошибкой — "Приложение будет закрыто". Использовал openGL и freeglut, компилятор MinGW и IDE — Eclipse. C>Вроде поможет статическая сборка, но как ее сделать в эклипсе? Заранее благодарен.
во первых статическая сборка поможет если есть библиотеки а не dll с dll никакой статической сборки не будет.
второе все dll которые требует ваша игра можно просто кинуть под ноги exe и он их сам там найдет, если конечно не меняете дефолтовую директорию в самой программе (для чтения ресурсов например) и действительно их качать не нужно ни от куда они у вас на компе гдето лежат
а вобще думаю будет достаточно указать ключ как говорили выше и тогда необходимость в dll вобще отпадет но только стандартных dll — glew32.dll использовать придется