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

Не могу подключить gmp к VS

24.01.2015, 21:55. Показов 8265. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу подключить gmp к Visual Studio 2013 Express. Пробовал на 2008 тоже не получается.
Прочитал кучу мануалов, собрал файлы gmp.h, gmpxx.h, libgmp-3.lib, libgmpxx-3.lib(есть ещё libgmp-10.dll и libgmpxx-4.dll). Но как бы я ни старался visual studio выдаёт кучу ошибок, если я подключаю gmpxx.h или ошибка "применение унарного минуса к типу без знака; результат оставлен без знака", если подключаю gmp.h. Сами эти ошибки происходят внутри .h файлов. Библиотеки пробовал пихать в VS\lib и просто добавлять в проект ничего из этого не выходит.
Пробовал выставлять свойства
C++/Code Generation -> Runtime library = Multi-threaded (/MT)
Linker/Input -> Ignore Specific library = libc.lib
как описано в Как подключить gmp lib
но ничего не помогает
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2015, 21:55
Ответы с готовыми решениями:

Как подключить gmp lib
доброго времени суток, столкнулся с проблемой - не могу подключить длл с либой gmp: http://gmplib.org/ т.к. на сайте одни сорцы, а...

Не могу подключить подключить геймпад Xbox 360 к компьютеру (windows 7)
Здравствуйте. Приобрёл себе геймпад от Xbox 360, но не могу его подключить. Компьютер начинает искать драйвер для устройства, но не...

Два роутера в одну сеть через wifi (по кабелю могу подключить), возможно ли так подключить?
Здравствуйте, имею два роутера один tp-link другой dlink, возможно ли подключить их к одной сети по wifi и что бы каждый ещё wifi раздавал,...

18
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.01.2015, 22:07
у вас похоже ошибки компиляции, а не линковки. если так, то манипуляции над .lib файлами и dllками ничего не дадут. до них дело не доходит. ошибки полностью выкладывайте. и код, если возомжно.
0
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
24.01.2015, 22:09  [ТС]
Да я и ничего не делаю. Просто подключаю gmp и пробую компилировать пустой проект.
C++
1
2
3
4
5
6
7
8
#include "stdafx.h"
#include <gmp.h>
 
 
int main()
{
    return 0;
}
error C4146: применение унарного минуса к типу без знака; результат оставлен без знака
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.01.2015, 22:16
ну вот я качнул и подцепил gmp.h
есть список ворнигов. среди прочих - про унарный минус.
gmp.h(1565): warning C4146: unary minus operator applied to unsigned type, result still unsigned
ворнинг - это не ошибка. вполне возможно что так так и задумывалось, просто не сделали явный каст
для избавления от него. ну или т.к. это похоже сишная либа, там такое без ворнингов компилится.
раз у вас ошибка - посмотрите что у вас в настройках проекта:
Project->Properties->C/C++->General->Treat warnings as errors
Если стоит Yes, поменяйте на No
0
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
24.01.2015, 22:21  [ТС]
В настойках стоит "Нет (/WX-)". А можете скинуть ссылку откуда вы скачали? Как я понял вы качали уже собранную версию...
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.01.2015, 22:24
еще вариант - попробуйте задийеблить ворнинги прагмами:
C++
1
2
3
4
5
#pragma warning( disable : 4127 )
#pragma warning( disable : 4146 )
#include "gmp.h"
 
....
ссылка отсюда:
http://www.cs.nyu.edu/exact/core/gmp/
static GMP library and header file for Visual C++: gmp-static-vc-4.1.2.zip
http://www.cs.nyu.edu/exact/co... -4.1.2.zip

в MSVS 2012 ворнинги и с дизейблом тоже все ок.
1
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
24.01.2015, 22:34  [ТС]
Ошибка ушла, но теперь если я пытаюсь использовать gmp опять появляются ошибки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#pragma warning( disable : 4127 )
#pragma warning( disable : 4146 )
#include <gmp.h>
 
 
int main() {
    mpz_t x;
    mpz_init_set_si(x, 1);
 
    for (int i = 0; i < 100; i++)
        mpz_add(x, x, x);
 
    mpz_out_str(stdout, 10, x);
 
    return 0;
}
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ __imp____gmpz_add в функции _main D:\c++\test\test\test.obj test
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ __imp____gmpz_init_set_si в функции _main D:\c++\test\test\test.obj test
Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ __imp____gmpz_out_str в функции _main D:\c++\test\test\test.obj test
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.01.2015, 22:38
далее, читайте инструкцию, которую вы тут указывали.
у вас сейчас ошибки линковки из-за того, что к проекту не подключена собственно либа gmp.lib
0
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
24.01.2015, 22:41  [ТС]
Я подключаю её в Компоновщик->Ввод->Дополнительные зависимости. Дописываю туда "gmp.lib;"
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.01.2015, 22:50
если что-то не так, указывайте что не так. даже если ошибки те же, что и в предыдущем шаге.
а то хз что у вас происходит.
предположу, что студия у вас не ищет эту либину в папке, в которой она лежит.
посмотрите в
Project->Properties->VC++ Directories->Library Directories
там надо указать папку, в которой у вас лежит gmp.lib
0
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
24.01.2015, 23:07  [ТС]
error LNK1120: неразрешенных внешних элементов: 2 D:\c++\test\Release\test.exe test
Ошибка 1 error LNK2001: неразрешенный внешний символ "@__security_check_cookie@4" D:\c++\test\test\test.obj test
Ошибка 2 error LNK2001: неразрешенный внешний символ "_mainCRTStartup" D:\c++\test\test\LINK test
Это на Release выдаёт, а на debug то же самое:
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ __imp____gmpz_add в функции _main D:\c++\test\test\test.obj test
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ __imp____gmpz_init_set_si в функции _main D:\c++\test\test\test.obj test
Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ __imp____gmpz_out_str в функции _main D:\c++\test\test\test.obj test

Добавлено через 8 минут
Может я что то не правильно делаю..
Скачал по ссыле которую вы дали
Цитата Сообщение от DU2 Посмотреть сообщение
static GMP library and header file for Visual C++: gmp-static-vc-4.1.2.zip
http://www.cs.nyu.edu/exact/co... -4.1.2.zip
Потом поместил gmp.h в ...\VC\include
gmp.lib и gmpDebug.lib в ...\VC\lib
и gmp.dll и gmpDebug в ...\VC\bin
потом в свойствах проекта в Компоновщик->Ввод->Дополнительные зависимости дописал "gmp.lib;gmpDebug.lib"
и поставил C/c++->Создание кода->Библиотека времени выполнения в /MT
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.01.2015, 23:16
честно говоря хз в чем у вас там дело.
одно точно: две либы вы зря прописали.
дописал "gmp.lib;gmpDebug.lib"
одна - для дебаг конфигурации, другая - для релиза.
если вы откроете окно Project->Properties, то в левом верхнем углу будет указана конфигурация,
для которой меняются настройки. по умолчанию это дебаг.
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
25.01.2015, 02:11
Лучший ответ Сообщение было отмечено Comp123 как решение

Решение

ашники и libgmp-3.lib пихай к исходникам, libgmp-3.dll в папку debug, сверху #include "gmp.h" и #pragma comment(lib, "libgmp-3.lib");

всё, больше ничего делать не надо
1
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
25.01.2015, 08:55  [ТС]
OstapBender, сделал как вы писали. Удалил все файлы gmp из папки VC и добавил файлы к проекту. Ситуация осталась такая же
error C4146: применение унарного минуса к типу без знака; результат оставлен без знака если пишу #pragma warning те же ошибки
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
25.01.2015, 13:14
что значит та же?
выше у вас были ошибки линковки, а сейчас вероятно просто неправильный вызов какой-то функции, написано же "применение унарного минуса к типу без знака; результат оставлен без знака"
0
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
25.01.2015, 15:25  [ТС]
OstapBender, я никакую функцию не вызываю.
C++
1
2
3
4
5
6
7
8
9
#include "stdafx.h"
#include "gmp.h"
#pragma comment(lib, "libgmp-3.lib")
 
int main()
{
 
    return 0;
}
И он выдаёт ошибку error C4146: применение унарного минуса к типу без знака; результат оставлен без знака

Добавлено через 13 минут
Поставил
C++
1
2
#pragma warning( disable : 4127 )
#pragma warning( disable : 4146 )
и подключил библиотеку из
Цитата Сообщение от DU2 Посмотреть сообщение
static GMP library and header file for Visual C++: gmp-static-vc-4.1.2.zip
http://www.cs.nyu.edu/exact/co... -4.1.2.zip
И всё, кажется, сработало!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#pragma warning( disable : 4127 )
#pragma warning( disable : 4146 )
#include "gmp.h"
#include <stdio.h>
#include "conio.h"
 
#pragma comment(lib, "gmp.lib")
#pragma comment(lib, "gmpDebug.lib")
 
int main()
{
    
    mpz_t  n;
    mpz_init_set_str(n, "123456", 0);
    mpz_mul(n, n, n);
    gmp_printf("%s is an mpz %Zd\n", "here", n);
    mpz_clear(n);
    _getch();
    return 0;
}
Ответ: here is an mpz 15241383936
Спасибо!
Странно, почему с моей собранной библиотекой не работает...
0
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
26.01.2015, 17:57  [ТС]
Странно, вроде, все функции работают, но если я вызываю mpz_import или mpz_export у меня появляются ошибки при компиляции:
Ошибка 2 error LNK1120: неразрешенных внешних элементов: 1 D:\c++\test3\Debug\test3.exe 1 1 test3
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ __imp____gmpz_import в функции _main D:\c++\test3\test3\test3.obj test3
Может кто знает решение данной проблемы?
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
26.01.2015, 21:25
в либе из ссылки таких функций нет. в h файле есть, а в .lib файлах - нет. почему - хз.
если вам нужны эти функции - никакие манипуляции с настройками проекта вам не помогут.
вы можете попробовать их сами заимплементить, либо найти другую собранную библиотеку,
либо самостоятельно собрать.
1
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 17
27.01.2015, 05:19  [ТС]
Хорошо, буду пробовать опять свою сборку подключать. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2015, 05:19
Помогаю со студенческими работами здесь

Не могу подключить LESS
Всем привет! Я в CSS чайник. Кто-нибудь, объясните по шагам четко и понятно, как на сайт подключить LESS, чтобы в CSS переменные работали....

Не могу подключить ТВ к ПК
подскажите пожалуйста не могу подключить аналоговый тв к пк, раньше все роботало. была видюха 8800gts выход s- видео, вход на тв тюльпан,...

Не могу подключить к ПК
Скачал PC suite версия 7.1.72.0 &gt;установил &gt; настройка подключения&gt; подключения спомощью кабеля&gt; система Windows виполняет установку...

Не могу подключить к wi-fi
Здравствуйте, ребята. Нужен ваш совет.... Дома есть маршрутизатор D-Link DIR-615... Он раздает интернет по дому. Проводной интернет...

не могу подключить БД
Раньше стоял FB 1.5 IBE 2.0 Win XP регистрировалась БД без проблем и прекрасно работала, щас стоит Win 7 FB 2.5 IBE 6 и не могу...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
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