Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с запуском программы на C под Cygwin, ошибка 
:(
    Опции темы
motorway
  Дата 19.1.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Всем привет.
После компиляции под Windows 7 x64 программы на C, расширение .c с помощью Cygwin получается файл .exe + лежат библиотеки .dll.
gcc -msse2 -O2 -Wall -g -o progr progr.c -lgmp -lpthread -lm
Но после запуска программы выдает такого рода ошибку:
3996 exception:: handle: Exception: STATUS_ACCESS_VIOLATION
...
... Error while dumping state (probably corrupted stack)

Exception: STATUS_ACCESS_VIOLATION at eip=00401448
eax=00000003 ebx=00000003 ecx=00B01268 edx=00000010 esi=00000000 edi=0028CBF8
Stack trace:
Frame Function Args
ebp=1A5DCD58 esp=1A5DCBA0 program=C:\cygwin\home\...\..exe, pid 3996, thread unknown (0xFA8)
1A7DCD98 610E38C5 cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
(00B6E660Stack trace:
Frame Function Args
, 000000001A5DCD58 00401448 , 00000000 (0028C9F8, 00000000, 00000000)
, 000000001A5DCD98 610E38C5 , 00B6E5D8 (00B6E5D8)
, 1A5DCDD4End of stack trace7
, 610E3810

Из-за чего это может быть, как побороть?

PM MAIL   Вверх
boostcoder
Дата 19.1.2011, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(motorway @  19.1.2011,  20:36 Найти цитируемый пост)
Из-за чего это может быть

первая и очевидная причина - корявый код.
зачем вы его в сижвине компилите? нативные вендовые компиляторы не подходят? или программа реализована для *nix ?
PM WWW   Вверх
motorway
Дата 19.1.2011, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Код писал не я, а программист, работающий под Никсом 64 бит, а у меня Вин 7 64. Он использует некоторые библиотеки. В начале файла вот такое:
Код

#include <stdlib.h>
#include <stdio.h>
#include <inttypes.h>
#include <string.h>
#include <math.h>
#include <assert.h>
#include <gmp.h>
#include <pthread.h>
#include <unistd.h>
#include <xmmintrin.h>

Не знаю, есть ли там что-то специфическое для Никса, чего нет по Виндой, но вероятность есть. Можно ли скомпилировать код под Вин без такой ошибки с указанными условиями? Сам программист хороший.
PM MAIL   Вверх
boostcoder
Дата 19.1.2011, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(motorway @  19.1.2011,  21:30 Найти цитируемый пост)
 программист, работающий под Никсом 64 бит

теперь понятно почему вы пытаетесь скомпилить код сижвином.

из приведенных вами хидеров, только xmmintrin.h мне не знаком. остальные хидеры есть в mingw32 или собираются из исходников.

а код, я так полагаю, секретный? посмотреть его нельзя?
PM WWW   Вверх
motorway
Дата 19.1.2011, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



А что сделать с xmmintrin.h? В целом, не шарю в C, так что если подскажете, буду благодарен.
А откуда взять mingw32 и в какой программе можно скомпилить это под Вин?
Код без его разрешения не могу дать, но подозрение есть, что там что-то в функции malloc.
PM MAIL   Вверх
boostcoder
Дата 19.1.2011, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(motorway @  19.1.2011,  21:41 Найти цитируемый пост)
А что сделать с xmmintrin.h?

нужно выискать ее в инете, и попробовать собрать с помощью mingw`а.

Цитата(motorway @  19.1.2011,  21:41 Найти цитируемый пост)
А откуда взять mingw32

у меня в подписи.
вам, помимо прочего, нужно еще самому собрать libgmp. или же, могу скинуть собранную.

Цитата(motorway @  19.1.2011,  21:41 Найти цитируемый пост)
подозрение есть, что там что-то в функции malloc. 

malloc - стандартная функция. и 100% рабочая. проблема может быть в ее неправильном использовании.

но скажите, в линуксе программа работает?

Это сообщение отредактировал(а) boostcoder - 19.1.2011, 21:48
PM WWW   Вверх
motorway
Дата 19.1.2011, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Спасибо.
Да, у него работало, по крайней мере он не писал, что там было такое, хотя это и не значит, что не могло быть такого  smile 
Думаю, у него все было нормально.
PM MAIL   Вверх
motorway
Дата 19.1.2011, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Скачал с sourceforge 64-битную версию, там какой-то набор папок, и не очень понятно, что с ними делать.
crt, doc, headers, libraries, tools - оканчиваются на такие слова.
Не знаете?
PM MAIL   Вверх
boostcoder
Дата 19.1.2011, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(motorway @  19.1.2011,  22:16 Найти цитируемый пост)
Не знаете?

нет.
PM WWW   Вверх
motorway
Дата 19.1.2011, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



А в Вашей версии знаете, как компилировать? Она 64-битная?
PM MAIL   Вверх
boostcoder
Дата 19.1.2011, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(motorway @  19.1.2011,  22:34 Найти цитируемый пост)
А в Вашей версии знаете, как компилировать?

как и все исходники компилируются с помощью mingw/gcc.

Цитата(motorway @  19.1.2011,  22:34 Найти цитируемый пост)
Она 64-битная?

32ух.

а Вы уверены в том, что код написан строго для компиляции 64ех битным компилятором? это неразумно, как правило.
PM WWW   Вверх
motorway
Дата 19.1.2011, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Там есть функции, которые не работали под 32-битной Виндоус... код в принципе рассчитан на то, что он лучше работает под 64-битной ОС. Насчет компилятора не знаю
PM MAIL   Вверх
boostcoder
Дата 19.1.2011, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(motorway @  19.1.2011,  22:39 Найти цитируемый пост)
Там есть функции, которые не работали под 32-битной Виндоус

у Вас код вообще под линукс! вендус тут при чем? Оо


Это сообщение отредактировал(а) boostcoder - 19.1.2011, 22:47
PM WWW   Вверх
motorway
Дата 19.1.2011, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Да, тут есть некоторая мешанина для меня... Я думал, что C может работать и там, и там. Сейчас пробую компилить на mingw, пока что выдает cannot find -lgmp, после некоторых еще ошибок, которые я убрал.
Поэтому сейчас качаю GMP, надеюсь, я правильно делаю, или нужно искать файл lgmp.h? Такого не нашлось
PM MAIL   Вверх
boostcoder
Дата 19.1.2011, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



libgmp собранная для mingw: http://rghost.ru/4003591
просто распакуйте архив в каталог куда распаковали mingw.

Добавлено через 56 секунд
и, на этом, ошибки не закончатся.
бросьте Вы лучше эту затею ;)
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0882 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.