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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
ikflood
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 3
#1

GMP, MPFR, MPIR кто знаком? - C++

22.05.2012, 07:40. Просмотров 1835. Ответов 3
Метки нет (Все метки)

Здравствуйте уважаемые форумчане, помогите разобраться, застрял, код компилируется (VS2010), но программа вылетает, мотивируя:

'test1.exe': Loaded 'D:\_KURS\test1\Debug\test1.exe', Symbols loaded.
'test1.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'test1.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'test1.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'test1.exe': Loaded 'D:\_KURS\test1\Debug\libgmp-3.dll', Binary was not built with debug information.
'test1.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Cannot find or open the PDB file
'test1.exe': Loaded 'D:\_KURS\test1\Debug\mpfr.dll', Cannot find or open the PDB file
'test1.exe': Loaded 'D:\_KURS\test1\Debug\mpir.dll', Cannot find or open the PDB file
'test1.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Symbols loaded.
'test1.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
HEAP[test1.exe]: Invalid address specified to RtlValidateHeap( 00550000, 000F2A40 )
Windows has triggered a breakpoint in test1.exe.

This may be due to a corruption of the heap, which indicates a bug in test1.exe or any of the DLLs it has loaded.

This may also be due to the user pressing F12 while test1.exe has focus.

The output window may have more diagnostic information.

КОД
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
#include <gmp.h>
#include <mpfr.h>
#include <stdlib.h>
#include <string.h>
 
int main(int argc, char** argv) {
 
  mpfr_t tmp; 
  mpfr_init(tmp);
  mpz_t rrr;
  mpz_init(rrr);
  mpz_t n;
  mpz_init(n);
 
  while (!feof(stdin)) {
      gmp_scanf("%Zd", &n); 
      if(feof(stdin)) {break;}
      mpfr_set_z(tmp, n, MPFR_RNDN); //tmp(mpfr_t) принимает значение n(mpz_t)
      gmp_printf("До сюда пашет"); 
      mpfr_get_z(rrr, tmp, MPFR_RNDA); //обратно mpfr_set_z; здесь обрывается :(
      gmp_printf("%Zd\n",n); 
  
  }
 
  mpz_clear(n);
  mpfr_free_cache();
  return 0;
}
Грешу на собранные через Ж библиотеки (я в программировании новичок). Но гляньте опытным взглядом на всякий случай, мож посоветуеуте что.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2012, 07:40     GMP, MPFR, MPIR кто знаком?
Посмотрите здесь:
C++ Те кто знаком с Eclipse отзовитесь
C++ Кто знаком с алгоритмом быстрого поиска
C++ Работа с библиотекой MPIR
Ошибка компоновки при использовании MPIR C++
Одномерный массив в MPIR (длинная арифметика) C++
C++ Как подключить библиотеку MPIR к проекту в Visual Studio 2013 express?
C++ Библиотека GMP
C++ Не собирается библиотека gmp
Не могу подключить gmp к VS C++
GMP под Windows C++
Установка библиотеки gmp, Dev-C++ C++
Библиотека gmp.h, бесконечные числа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
22.05.2012, 08:40     GMP, MPFR, MPIR кто знаком? #2
а вы эти библиотеки подключили к проекту?
ikflood
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 3
22.05.2012, 11:17  [ТС]     GMP, MPFR, MPIR кто знаком? #3
А вот как я собирал библиотеки GMP (повторил заново)
гайды: http://cs.nyu.edu/exact/core/gmp/ и http://agapii.ucoz.ru/publ/sborka_gm...indows/1-1-0-7

Имеем:
mingw-get-inst-20111118.exe - установлен
MSYS-1.0.11.exe - установлен
/home/gmp-5.0.5 – сырцы
/home/gmp – папка для сборки

из /home/gmp-5.0.5 выполняю:
./configure –prefix=/home/gmp
make && make check && make install && make clean

получил папки include, lib и share
libgmp.a и libgmp.la скопировал в c:\mingw\lib, а gmp.h в c:\mingw\include //зачем?

./configure --prefix=/home/gmp --disable-static --enable-shared
make && make check && make install


получил /home/gmp-5.0.5/.libs
переименовал ...\.libs\libgmp-3.dll.def в ...\.libs\libgmp-3.def //зачем?
нашел 3 файла lib.exe в ... \Microsoft Visual Studio 10.0\VC\bin\
не ругается только один: ... \Microsoft Visual Studio 10.0\VC\bin\amd64\lib.exe
скопировал папку .libs в ...\VC\bin\amd64\ (path не расшарен)
оттуда запускаю:

lib.exe /machine:x86 /def:.libs\libgmp-3.def

получил libgmp-3.lib libgmp-3.exp
обещанного dll нету , ну и ладно, зато есть файл .libs\libgmp-10.dll
переименовываю в libgmp-3.dll

Чувствую неправильно сделал, хотя это мой 3-й проект на этих библиотеках, 2 предыдущих работали стабильно, но медленно => решил 3-й разобрать.


MPFR и MPIR скачал тут http://www.holoborodko.com/pavel/mpfr/#download

а вы эти библиотеки подключили к проекту?
Подключаю библиотеки:
Project->add existing item: libgmp-3.lib, mpfr.lib, mpir.lib
Properties->C/C++->Additional include directories: папки с gmp.h и mpfr.h
В папку ...test1\debug кидаю mpir.dll, mpfr.dll и переименованный libgmp-3.dll

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

P.S. Код – вырезка из проекта по поиску простых чисел алгоритмом AKS, исходники тут https://github.com/phillipm/ecpp-aks-primality-proving
Avazart
7101 / 5278 / 267
Регистрация: 10.12.2010
Сообщений: 23,276
Записей в блоге: 17
22.06.2012, 03:15     GMP, MPFR, MPIR кто знаком? #4
Если тема еще актуальна могу выложить проект...
Yandex
Объявления
22.06.2012, 03:15     GMP, MPFR, MPIR кто знаком?
Ответ Создать тему
Опции темы

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