Как установить gmp в visual studio
GMP — это свободная библиотека для производства различных арифметических действий над целыми, рациональными и действительными числами. Разрядность чисел, с которыми работает библиотека ограничивется памятью самой машины. На многих сайтах пишут что GMP самая быстрая.
Ну что же попробуем собрать GMP под Windows. Для этого надо скачать кое какие дистрибутивы,
Сам GMP
MinGW — если есть в Qt Creator — не надо
MSYS
Теперь устанавливаем, начинаем с mingw — ставим в c:\mingw (но это у меня), затем MSYS(во время установки указываем каталог с mingw, но если вы этого не сделали ни беда, в папке etc есть файлик fstab.sample, залазте в него, редактируйте пути и переименовывайте в fstab).
Распаковываем архив с GMP в C:\MinGW\msys\1.0\home\user(C:\MinGW\msys\1.0 — папка с установленным MSYS, home\user — рабочая папка пользователя («user»-имя пользователя)). Кликаем по иконке MSYS на рабочем столе, появляется консоль. Также MinGW и MSYS можно установить через mingw-get-inst (что гораздо проще).
1. mkdir gmp — создаем каталог, сюда будут сбрасываться результаты сборки
2. cd gmp-5.0.5 — переходим в каталог с сырцами GMP
С начала собираем MinGW под Win (результатом будет статическая библиотека libgmp.a)
./configure --prefix=/home/user/gmp — конфигурируем GMP перед сборкой, /home/user/gmp куда записываем результат компиляции.
Далее идет длительная операция конфигурирования ( у меня около 2-ух часов )
Если без ошибок продолжаем дальше.
make check — проверяем (на сайте разработчика это рекомендуют сделать)
make install — устанавливаем в папку GMP
make clean — убираемся
Итак, теперь в /home/user/gmp были созданы папки include (gmp.h), lib(libgmp.a и libgmp.la) и share копируем файлы в соответствующие папки MinGW ( ВАЖНО. )
Теперь собирем dll
./configure --prefix=/home/user/gmp --disable-static --enable-shared
make
make check
make install ( ВАЖНО. ) Ни в коем случае не выполнять make clean
В противном случае придется собирать все заново.
В /home/user/gmp добавилась папка bin (libgmp-10.dll, переименуйте libgmp-10.dll в libgmp-3.dll), в lib добавился libgmp.dll.a
В текущей папке была создана папка .libs, в ней был создан файл libgmp-10.dll.def (переименуйте его в libgmp-3.def), его мы и передадим утилите lib из VC, для сборки из него файла libgmp-3.lib.
ЕСЛИ ВЫ ВЫПОЛНИЛИ MAKE CLEAN, ТО ПАПКА .libs БУДЕТ УДАЛЕНА, СООТВЕТСТВЕННО НЕ БУДЕТ И libgmp-10.dll.def!
Идем ( если установлена VS ) C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\, переносим файлы LIB.EXE И LINK.EXE в .libs Если возникает ошибка, что система не может найти файл mspdb80.dll, то находим и переносим его в system32.
Далее запускаем link.exe и
cd .libs
lib /machine:x86 /def:libgmp-3.def
Библиотека собрана.
Теперь про подключение полученной библиотеки к Qt Creator.
1. Создаем новый проект.
2. В левом верхнем углу находиться вкладка Проекты. Выделяем необходимый нам проект.
Правой кнопкой мыши по названию-> Добавить библиотеку.
3. Выбираем внешнюю библиотеку.
4. Переносим файлы libgmp-3.lib, gmp.h и libgmp-3.def в папку нашего проекта ( не обязательно, можно указать весь путь, а можно и так ).
5. Файл Библиотеки -> Обзор-> Выбираем libgmp-3.lib.
В файле имя_проекта.pro появляется такие строки
Стираем букву d после имени библиотеки.
Далее в файле main.cpp пишем
Это пример.
Вывод приложения: 1267650600228229401496703205376
Плюс для запуска не из компилятора нужно скопировать библиотеку в папку, где exe'шник
Установка статической библиотеки GMP в среде Windows и использование в Vscode
Установка GMP под windows действительно раздражает,Если бы виртуальная машина ubuntu не зависала, я бы не был таким аккуратным
1. Установка
2. Скачайте msys
3. Установите GMP
Дважды щелкните msys.bat, Вы увидите окно командной строки, похожее на Linux. Войдите в распакованную папку gmp с помощью команды cd: (при условии, что я поместил ее в C: / gmp /),Последовательно выполните следующие команды
Во время процесса установки не думайте, что ваш компьютер завис, потому что это займет у вас много времени (несколько часов).Напротив, Linux не немного быстрее.. Обратите внимание, что я создал здесь статическую библиотеку, и метод создания динамической библиотеки здесь не описывается (не распыляйте меня, посмотрите на заголовок).
После того, как все будет завершено, войдите в папку gmp, и вы увидите папку .libs с файлами .a в ней, то есть статическую библиотеку, которая нам нужна.
Два, используйте
Мне нравится использовать переносимый Vscode для написания языка C, и конфигурацию vscode я могу изменить самостоятельно. Вот способ использования библиотеки GMP в Vscode [это метод, который я пробовал сам, если есть лучший способ, пожалуйста, не стесняйтесь указывать на него]. (Если вы хотите распылить, я говорю только о vscode, но не о других редакторах, см. Заголовок)
1. Импортируйте файл заголовка.
Не нужно устанавливать includepath, просто укажите следующее:
(Раньше не знала, смогу ли я так написать, пробовала)
Тогда код обычно, автозавершение кода и другие функции будут работать нормально при нормальных обстоятельствах.
2、tasks.json
tasks.json необходимо внести небольшие изменения (параметры gcc)
Измените раздел «args» следующим образом:
Что еще? -I (большой i), -L, -l (маленький L). Среди них -I (большой i) и его параметры указывают, где найти файл заголовка gmp. -L и его параметры указывают, где найти созданную вами статическую библиотеку. -l (маленький L) указывает, какая статическая библиотека вам нужна.
Затем выполните сборку и запускайте в обычном режиме.
Днем ~~
Интеллектуальная рекомендация
Java.nio.Buffer flip () метод jdk Ошибка перевода на китайский язык
Когда я сегодня читал «Идеи программирования на Java», я столкнулся с методом java.nio.Buffer flip (). Дело в том, что «[color = red] переворачивает этот буфер. Сначала установите ог.
Предварительное понимание регулярных выражений Python (4)
Сегодня я продолжу делиться базовыми знаниями о регулярных выражениях Python. В основном я представляю использование специального символа "<>". Ниже приведено конкретное руководство. .
Все белое Введение Сверток Neural Network (CNN)
Использование внутреннего соединения, левого соединения, правого соединения в оракуле
Левое-правое соединение фактически говорит, какая таблица является результатом нашего совместного запроса ~ 1. Взаимосвязь проста select A.*, B.* from A,B where A.id = B.id select A.*, B.* from.
[Код очень подробный] POJ 2492 A Bug's Life (и проверьте коллекцию)
1. Описание заголовка 2. Инструкции по анализу алгоритмов и руководство по написанию кода. Похожие темы:POJ 1182 Решение проблемы пищевой цепи Наблюдается m насекомых и n вязок. Насекомые u и v могут .
Конфигурация GMP Большая прямая библиотека в среде Windows (Visual Studio 2019 + GMP-6.2.0 + Mssys)
TUCAO спереди:наконец! ! Успешно справился! ! ! Почти много всю ночь настроен. Отказ Отказ Отказ Отказ В прошлом все Ubuntu в среде виртуальной машины с языком C, я не знаю, почему ненормальная карта; поэтому, обнаружив версию Python GMPY2 GMP, я положил его в руки Python; но эффективность производительности Python Действительно же жена медленная, два 500 * 500 мультипликации матрицы (принесите какой-то пользовательский алгоритм), результаты измеряются, а приблизительное время завершения составляет 45 дней. Отказ Отказ Отказ Отказ Не хочу оптимизировать его. Отказ Таким образом, в крайнем сроке я намерен повторно пересаживать язык C, я не хочу использовать Sublime редактор виртуальной машины, поэтому я планирую вернуться к объятиям визуальной студии под окнами; Отказ Отказ Конфигурация третьей сторонней библиотеки под Windows действительно большая. (Это может быть просто, что мой бизнес не знаком, поэтому мне не нужно использовать C ++ под Windows . Я должен сказать, что Python и Linux Не слишком удобно. ..) Учебное пособие в Интернете на самом деле слишком облако в тумане. Трудно понять для моих социальных животных, которые уже оставили мышления; до отчаяния мертвая лошадь за лошадими, и обнаружила, что Наконец заплатил! ! (Най не будет сокращать день . ) Сплетниче, непосредственно шаг за шагом, картина уравнения дурака (чтобы помешать мне забыть, когда я переустанавливаю его; и я благодарю пожилых людей на интернет-учебник, плевать, Нет, я должен прийти в год обезьяны Луны;)
Установите среду с помощью программного обеспечения, который вы хотите использовать, и его связанные версии:
Windows 10;Visual Studio 2019;gmp-6.2.0;msys 1.0.18;gcc 6.3.0
Есть среда GCC
Хорошо, я признаю, что здесь ленивый, потому что мой компьютер повернул GCC очень рано раньше, EMMM, я не хочу его устанавливать (Smile), поиск Baidu для Mingw, это должно быть очень просто, конечный эффект входит GCC --version в CMD может появиться номером версии, все в порядке.
Желтая часть - это просто скриншот, и это верно для выделения, так что это правда (так что не видите желтого, не паникуйте, ах)
После установки GCC просто скажи это ~
Я выбрал этот GMP-6.2.0.tar.xz в середине.
4. Составьте GMP
Просто шаг 3 загрузите это MSYS.ZIP сжатый файл, а затем откройте его.
Затем дважды щелкните MSYS.BAT, запустите эффект, как показано на рисунке.
После запуска MSYS.BAT, в домашней папке папки MSYS, в дополнение к администратору, сгенерирована папка, названная после вашего имени пользователя, (не требуется, CHENJ), поставьте предыдущую ступеньку для загрузки GMP-6.2.0. .xz скопирован.
Затем, в терминале, открытой от MSYS.BAT, входные LS должны появиться.
После следующего введите следующие инструкции в свою очередь:
Этот процесс, потребляющий время, это может быть относительно длинным, пожалуйста, ждите терпеливо. Когда окончательная компиляция успешна, как показано.
5. Настройка VSTUDIO Studio
Откройте Vistudio Studio 2019, я построил проект под названием Test_For_GMP в качестве демонстрации.
Нажмите «Пункт (P) → Свойства (P)», чтобы открыть страницу свойств текущего проекта, как показано на рисунке.
Выберите «C / C ++ → General», добавьте «каталог дополнительной защиты» плюс полное название пути ранее извлеченной папки GMP-6.2.0 (т. Е. Каталог, где GMP.H, файл GMPX.H Header) В то же время «Check SDL» установлено значение «Нет (/ SDL-)».
В «Дополнительном каталоге библиотеки» «Limit → General», добавьте имя полного пути (например, libgmp.dll.a, libgmpxx.dll.a, libgmpxx.dll.a, libgmpxx.dll). Libgmpxx-4. DLL и т. Д. В то же время скопируйте Pibgmp-10.dll и libgmpxx-4.dll к C: // Windows / Syswow64 и C: // Windows / System32.
В добавленных зависимостях «Linkr → Enter» добавьте libgmp.dll.a и libgmpxx.dll.a.
Наконец, не забудьте последовательно согласуться с частью красного круга, синей частью круга.
На данный момент это очень хорошо.
Наконец, напишите тестовый код стиля C ++.
Результат как показано.
GMPXX.H был инкапсулирован на классы и был перегружен на общие дополнительные и вычитание операции.
Если это неисправность C, файл заголовка - GMP.h, как показано на рисунке.
Результатом также одинаково.
Пишите в последнее время:Ах, наконец-то совпадают, и напишу, я наконец получил его. Теперь я думаю об этом, но я чувствую себя так. Однако, когда я был в начале, когда я ничего не знаколся, окружающая среда была просто кошмаром. Хорошо, тогда я буду хорошо провести время, чтобы запрограммировать его под Windows. Если вы хотите следовать другим библиотекам, вы должны работать. Во второй половине дня я начал продолжать экспериментировать (зимний отдых почти все потребляет этот решающий, я не закончил работать. Так что у меня идеальный результат эксперимента желания ~
Есть ли другой учебник? Что я должен делать?
Я использую Visual Studio 2010 на Windows 7.
Решение
Я столкнулся с подобной проблемой и только что решил ее, загрузив предварительно скомпилированные библиотеки MPIR и MPFR вместо GMP, для которых требуется Windows или аналогичные функции в Windows.
Надеюсь это поможет
Теперь идеальное решение от @casevh можно найти здесь:
Сборка mpir / mpfr / mpc через VC ++
Другие решения
Как настроить Visual Studio 2015 Project с MPFR
Получение предварительно скомпилированных двоичных файлов
mpfr_mpir_x86_x64_msvc2010 (предварительно скомпилированный mpfr mpir с MSVC 2010
- ПРИМЕЧАНИЕ: Visual Studio по-прежнему позволяет выполнять отладку в конфигурации выпуска, поэтому отладка не является большой проблемой на данном этапе, когда вы просто пытаетесь начать работу и запустить
mpfrc ++ — 3.6.2 (обертка c ++ от Holoborodko)
ПРИМЕЧАНИЕ: этим двоичным файлам несколько лет, но они проверены и
«относительно без ошибок»
Настройки проекта Visual Studio:
Это необходимо, чтобы начать сейчас, так как мы пропустили отладку
dll в распространяемой версии 2010 (должен был быть установлен как часть
VS установить)
- mpfr_mpir_x86_x64_msvc2010:
- Из папок «Win32> Release» для mpfr и mpir
- Скопируйте * .dll, * .exp, * .lib и * .pdb в каталог $ (SolutionDir) / lib.
- Все заголовочные файлы в каталоге $ (SolutionDir) / include
- Добавьте mpreal.h к своему проекту (или в $ (SolutionDir) / include, если хотите)
- Заголовок — все, что вам нужно для оболочки C ++
- Включить каталоги: добавьте путь к вашему каталогу включения
- Библиотечные каталоги: добавьте путь к вашей директории lib
- Добавьте в этот список следующее: mpfr.lib; mpir.lib;
- Командная строка: ‘XCOPY «$ (SolutionDir) lib * .dll» «$ (TargetDir)» / D / K / Y’
- Описание: «Копирование DLL в целевой каталог»
- Использовать в Build: ДА
Скажите VS, чтобы очистить библиотеки DLL, когда он очищает выходную папку:
Чтобы протестировать свой проект, скопируйте main () из «example / example.cpp» из
папка mpfrc ++ — 3.6.2Решение
Получить актуальную версию здесь Библиотека GNU GMP . Убедитесь, что вы настроили его для установки в / usr / lib (для настройки передайте —prefix = / usr).
Здесь у вас есть документация: GNU GMP Руководство .
Вы не используете библиотеку правильно. Я не знаю, можете ли вы получить прямой доступ к значениям mpx
с функциями C ++, но здесь у вас есть рабочий пример того, чего вы хотели достичь:Другие решения
Я предполагаю, что вы уже загрузили и установили Eclipse и MinGW и установили msys в MinGW. Вы должны установить MinGW до msys!
Откройте окно msys (по сути, оболочку bash). cd $ и tar -Jxvf $ /gmp-x.x.x.tar.xz
Эти параметры tar отличаются от того, что вы можете найти в Интернете! -Jxvf подходит для xz (и я думаю, что lzip), но для gzip вы используете -xzvf.
cd gmp-x.x.x и запустите ./config.guess. Запишите вывод. Вам это понадобится дальше.
Запустите ./configure —prefix = $ —build = —enable-cxx —with-gnu-ld
Очевидно, что если вы явно не скажете GMP собирать для вашей платформы, то он создаст все, что плохо. Опция cxx создает библиотеки C ++, а —with-gnu-ld позволяет ему работать с ld. Довольно просто.
EX: предположим, что вы установили в C: / gmp. Вы должны иметь gmp / include / gmp.h и gmpxx.h. Вы также должны иметь gmp / lib / libgmp.a, libgmp.la, libgmpxx.a, libgmpxx.la. У вас также должен быть общий каталог с материалами в нем.
- Перейти к проекту -> свойства
- В C / C ++ build -> Environment отредактируйте переменную PATH и добавьте $ / include; $ / lib
- В C / C ++ build -> settings -> settings tools -> GCC Assembler -> general add $ / include в качестве пути включения.
- То же самое место, но -> компилятор GCC C ++ -> включает в себя add $ / include в качестве пути включения.
- Там же -> GCC C ++ compiler -> Разное — добавьте -lgmp -lgmpxx в конец строки. Конец линии!
- То же место -> GCC C компилятор Добавьте те же пути включения и другие параметры, что и раньше.
- Там же -> MinGW C ++ linker -> Библиотеки Добавьте в «Библиотеки (-l)» и gmp, и gmpxx В ЭТОМ ЗАКАЗЕ! Теперь добавьте $ / lib в «LIbrary Search Path (-L)»
- Под C / C ++ Общие -> Пути & Символы -> вкладка Incudes проверьте, что у вас есть $ / include в ваших каталогах include для Assembly, C и C ++. Если их там нет, возможно, вы испортили предыдущий шаг. Они должны быть автоматически заполнены Eclipse.
- Там же -> вкладка «Библиотеки», проверьте, что у вас есть gmp и gmpxx в этом порядке. Это уже должно быть заполнено.
- То же место -> Вкладка «Пути к библиотекам» Проверьте наличие $ / lib, которое уже должно быть там.
Нажмите «Применить» и убедитесь, что вы перестроили индекс, иначе изменения не будут приняты. Нажмите OK, чтобы закрыть.
Запустите эту короткую программу, чтобы проверить ваши настройки:
Ваши команды компиляции должны выглядеть примерно так:
Порядок вариантов важен. Я не знаю всех, почему, но если во второй командной строке (которая связывает программу) есть флаги -lgmp -lgmpxx перед опцией -o, то соединение с треском провалится.
Флаг -l сложен. На самом деле написано: «Иди ищи -L для liblibrary.a». В этом случае «посмотрите в C: \ gmp \ lib для libgmp.a и libgmpxx.a».
Я слышал об ошибках, связанных с Cout и 64-битной версией Eclipse, поэтому я использую 32-битную версию, где я вижу ту же ошибку. 🙂
Поскольку в документах библиотеки gmp есть очень маленькие примеры, я включу пример возведения в степень для справки:
Программа рассчитывает 2 ^ 20000
Обобщение: g++ -o gmp_pow_test gmp_pow_test.cpp -lgmp
Установите библиотеку gmp в Ubuntu с помощью следующего: sudo apt-get install libgmp-dev libgmpxx4ldbl
Вы должны сказать компилятору какие библиотеки, которые вы хотите использовать.
Вам нужно будет сказать компилятору где заголовочный файл есть.
Возможно, уже слишком поздно, чтобы быть полезным, но …
Во-первых, ваша программа работает просто отлично. Как указывали другие, вам необходимо (а) убедиться, что установлена библиотека GMP (включая ее расширение gmpxx и все соответствующие файлы), и (б) вы сообщаете компилятору, где найти оба включаемых файла, и библиотеки для связи с.
В моем случае файлы include находятся в / opt / local / include, а библиотеки находятся в / opt / local / lib (там, где их разместил Macports :).Читайте также: