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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
ikflood
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 3
22.05.2012, 07:40     GMP, MPFR, MPIR кто знаком? #1
Здравствуйте уважаемые форумчане, помогите разобраться, застрял, код компилируется (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;
}
Грешу на собранные через Ж библиотеки (я в программировании новичок). Но гляньте опытным взглядом на всякий случай, мож посоветуеуте что.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
 Аватар для Avazart
6900 / 5140 / 252
Регистрация: 10.12.2010
Сообщений: 22,584
Записей в блоге: 17
22.06.2012, 03:15     GMP, MPFR, MPIR кто знаком? #4
Если тема еще актуальна могу выложить проект...
Yandex
Объявления
22.06.2012, 03:15     GMP, MPFR, MPIR кто знаком?
Ответ Создать тему
Опции темы

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