Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 3

Использование GMP с Qt

18.03.2019, 10:06. Показов 2605. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Вопрос касается библиотеки длинной арифметики GMP. Собрал данную библиотеку под Qt, все как надо, слинковал с Qt, все функции распознаются, но проблема в том, что при запуске программы Qt выводит пустое окно, в строке вывода при этом пишется, что процесс завершился с кодом -1073741515. Ошибок при компиляции и отладке никаких нет. И так с любым кодом, как бы я не менял функции и числа, результат просто не выводится. Подскажите, может кто-то уже сталкивался с такой проблемой?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2019, 10:06
Ответы с готовыми решениями:

Использование библиотеки gmp
Здравствуйте, подскажите,пожалуйста, как значение переменной типа int записать в переменную типа mpz_t?

Библиотека GMP
Добрый день! Недавно слышал про библиотека gmp и возникли вопросы по поводу её использования. Не могли объяснить новичку как эту библиотеку...

работа в GMP
Набросайте плз возведение целого числа в большую степень (очень большую) до 256бит...используя библиотеку gmp в VS C++, а затем сравнить...

12
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
18.03.2019, 16:22
Fariton13,
- https://gmplib.org/manual/Inst... alling-GMP
- https://gmplib.org/manual/Buil... ld-Options

Code
1
2
3
4
5
6
7
8
9
$ cd gmp-6.1.2/
$ ./configure --enable-cxx CC=g++
$ make check
$ make
$ cd ..
$ g++ -Igmp-6.1.2 -Lgmp-6.1.2/.libs -lgmp -lgmpxx -O3 cyberforum.cpp -o run
$ LD_LIBRARY_PATH=gmp-6.1.2/.libs/ ./run
sum is -4444
absolute value is 4444
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <bits/stdc++.h>
#include <gmpxx.h>
 
int main (void)
{
  mpz_class a, b, c;
 
  a = 1234;
  b = "-5678";
  c = a+b;
  std::cout << "sum is " << c << "\n";
  std::cout << "absolute value is " << abs(c) << "\n";
}
1
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 3
19.03.2019, 22:26  [ТС]
outoftime,
Цитата Сообщение от outoftime Посмотреть сообщение
$ g++ -Igmp-6.1.2 -Lgmp-6.1.2/.libs -lgmp -lgmpxx -O3 cyberforum.cpp -o run
Это вы в Qt запускаете или через командную строку?
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
19.03.2019, 22:45
Fariton13, это всё команды терминала. gmp-6.1.2 сканач в одноимённую папку. В общем, GMP можно собрать для плюсов и использовать. Qt там или нет - не волнует. Вопрос закрыт. Как собрать используя ваш компилятор - узнавайте, лично я буду собирать Qt проекты только с помощью CMakeLists.txt. Как собрать GMP с помощью cmake? - Понятия не имею, в оф. документации указан строгий порядок действий и возможные параметры конфигурации. Если вы умеете\знаете как обращаться с Makefiles.am - тогда вы во всём сможете разобраться. В противном случае, инструкция написана для вас.

Я слишком поверхностно знаком с системами сборки для плюсов чтобы дать сколь либо дельный совет. Всё что я выложил это то что пробовал и что получилось. Собрать исполняемый файл со статической линковкой, кстати говоря, у меня не вышло.
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
20.03.2019, 18:28
Fariton13, сегодня наткнулся на вот такую вот штуку http://win-builds.org/doku.php

У неё есть собранная библиотека gmp.dll и все либы Qt + много чего ещё.
1
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 3
25.03.2019, 23:41  [ТС]
outoftime, спасибо, я уже кучу всего перепробовал, и библиотеку перезаливал, и отладчики менял, сейчас очередная проблема с ссылками, видимо с подключением накосячил, а как решить понять не могу
Миниатюры
Использование GMP с Qt   Использование GMP с Qt  
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
25.03.2019, 23:46
Fariton13, помимо -lgmpxx нужно еще -lgmp, т.е. -lgmpxx -lgmp
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
26.03.2019, 04:00
Croessmah, а я как написл?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
26.03.2019, 04:25
outoftime, у ТС на скриншотах не так.
1
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 28
04.06.2019, 09:07
Fariton13, подскажи пожалуйста ,у меня qt + gmp,собрал статически у меня на компе все ок,на других машинах с окнами qt проблем нет а вот когда идут расчеты gmp ,приложение вылетает.
0
 Аватар для bedvit
1209 / 260 / 22
Регистрация: 20.05.2016
Сообщений: 1,139
Записей в блоге: 22
05.06.2019, 11:29
Пользуюсь MPIR.
Подключаю как статистическую библу, никаких dll тащить не надо, тащу только то, что нужно. По скорости тоже самое, что и GMP. Есть перегрузка операторов - работа с длинными числами элементарна:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <mpirxx.h>
 
int main ()
{
mpz_class a, b, c;
a = 1234;
b = "5678545561465465415466421311343123132132165";
c = a-b;
cout << "result is " << c << "\n";
return 0;
}
По ссылке есть мануал как собрать библу из исходников (исходники там же) - опять же ничего сложного, открываем проект, собираем библу статистическую или динамическую. В последней версии кроме С/С++ интерфейса реализован и С#.NET интерфейс. Короче, годный проект из сейчас существующих для длинной арифметики. Простой в использовании, быстрый. Все, конец рекламы. ))
Обсуждения можно глянуть здесь.
Библиотека для работы с длинными числами (BigInteger)

Добавлено через 9 минут
По сути MPIR - и GMP это одно и тоже. все методы и свойства имеют одинаковые имена, взаимно совместимы (не проверял, ИМХО). Но несколько допиленная и позволяет использовать кроме Си еще и С++, C#.NET.
1
2 / 2 / 1
Регистрация: 19.10.2014
Сообщений: 64
14.06.2019, 11:59
Цитата Сообщение от bedvit Посмотреть сообщение
Пользуюсь MPIR.
Подключаю как статистическую библу, никаких dll тащить не надо, тащу только то, что нужно. По скорости тоже самое, что и GMP. Есть перегрузка операторов - работа с длинными числами элементарна:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <mpirxx.h>
 
int main ()
{
mpz_class a, b, c;
a = 1234;
b = "5678545561465465415466421311343123132132165";
c = a-b;
cout << "result is " << c << "\n";
return 0;
}
По ссылке есть мануал как собрать библу из исходников (исходники там же) - опять же ничего сложного, открываем проект, собираем библу статистическую или динамическую. В последней версии кроме С/С++ интерфейса реализован и С#.NET интерфейс. Короче, годный проект из сейчас существующих для длинной арифметики. Простой в использовании, быстрый. Все, конец рекламы. ))
Обсуждения можно глянуть здесь.
Библиотека для работы с длинными числами (BigInteger)

Добавлено через 9 минут
По сути MPIR - и GMP это одно и тоже. все методы и свойства имеют одинаковые имена, взаимно совместимы (не проверял, ИМХО). Но несколько допиленная и позволяет использовать кроме Си еще и С++, C#.NET.
Не подскажете, что именно вы закидываете в проект QT из архива с MPIR, там много всего и непонятно, что нужно а что нет.
0
 Аватар для bedvit
1209 / 260 / 22
Регистрация: 20.05.2016
Сообщений: 1,139
Записей в блоге: 22
14.06.2019, 14:36
Цитата Сообщение от Xadjee Посмотреть сообщение
Не подскажете, что именно вы закидываете в проект QT из архива с MPIR, там много всего и непонятно, что нужно а что нет.
Что вам нужно то и закидывайте. По ссылке есть PDF, там все описано. К примеру для статистической библы, без оптимизаций под архитектуру процессора, под С++, собираются два проекта:
lib_mpir_cxx
и
lib_mpir_gc

Добавлено через 3 минуты
в build.vc15 (попробуйте из этой папки)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2019, 14:36
Помогаю со студенческими работами здесь

Библиотека gmp
Кто не знает, что такое библиотека gmp и для чего она нужна, просьба не засорять тему. Недавно начал пользоваться функциями, что...

Подключение gmp
Истоки здесь https://www.cyberforum.ru/cpp-builder/thread598874-page4.html -тут же скрины и ссылки При попытке подключить эту...

Сборка gmp
Всем привет. Пытаюсь собрать gmp 6.1.1 для windows,следую вот этой инструкции (за исключением п.3, т.к. там ссылки ведут не туда, но...

Не могу подключить gmp к VS
Не могу подключить gmp к Visual Studio 2013 Express. Пробовал на 2008 тоже не получается. Прочитал кучу мануалов, собрал файлы gmp.h,...

Функция Gmp. mpz_import()
Что делает эта функция.Вот описание По английски не понятно. А по русски - бред. Помогите пожалуйста)Перенесено из Qt. Asdprom, либо...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru