Я бы порекомендовал покурить rtfm [update]21.02.05 13:02 Число просмотров: 2196 Автор: amirul <Serge> Статус: The Elderman Отредактировано 21.02.05 14:02 Количество правок: 1
> Вставил в пограмму #Pragma но ничего неизменилось. А когда > подключал либу увидел следуюшие в Linker -> Command > line: > /OUT:"Debug/gmp-test.exe" /INCREMENTAL /NOLOGO > /LIBPATH:"C:\Program Files\Microsoft Visual Studio > .NET\Vc7\lib\gmp.lib" /DEF:"C:\WINNT\system32\gmp.lib" > /DEBUG /PDB:"Debug/gmp-test.pdb" /SUBSYSTEM:CONSOLE > /MACHINE:IX86 kernel32.lib user32.lib gdi32.lib > winspool.lib comdlg32.lib advapi32.lib shell32.lib > ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib > "\WINNT\system32\gmp.lib"
> но так у меня ни чего и не вышло. Может это из-за того что > хоть у меня и MS Visual Studio .Net Но С++ у меня 7.0. В > логе на адреса посмотрите Как минимум три прогона. В пути к библиотекам указана сама библиотека. Эта же библиотека (но уже в system32) указана в качестве DEF-файла (зачем?). И последняя (не совсем ошибка, но потенциально опасная настройка) - путь к библиотеке указан от корня ТЕКУЩЕГО диска (но тоже почему то в system32) если система и visual studio находятся на одном диске - ничего страшного. Если на разных - линковаться не будет. И во вторых (в том же месте), на фига давать полный путь к библиотеке линкера?
В общем покури мануалы в части работы с линкером и сможешь исправить все сам (сразу скажу, что именно с указанным тобой дистрибутивом gmp из библиотеки core я работал - там все отлично компилится)
Вообщем я скачал по адресу http://www.cs.nyu.edu/exact/core/gmp/ готовые библиотеки под VC++, но у меня возникли проблемы когда я попытался откомпилить тестовый пример. Может кто знает как этой штукой пользоваться, а то я с английским не очень дружу.
Был не прав, исправлюсь…
Ситуация обстоит так: программу пишу в Visual C++ .Net, руководство по использованию GMP изучил, но ответа не нашёл. С указанной ссылки взял gmp-static-vc-4.1.2.zip для Visual C++ 6.0 & Visual C++ .Net
Из руководства взял первую прогу:
void
foo (mpz_t result, const mpz_t param, unsigned long n) {
unsigned long i;
mpz_mul_ui (result, param, n);
for (i = 1; i < n; i++)
mpz_add_ui (result, result, i*7);
}
int main (void) {
mpz_t r, n;
mpz_init (r);
mpz_init_set_str (n, "123456", 0);
foo (r, n, 20L);
gmp_printf ("%Zd\n", r);
return 0;
}
добавил #include <stdio.h>
#include <gmp.h> как сказана в руководстве
и при компиляции получил c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\gmp.h(1565): warning C4146: unary minus operator applied to unsigned type, result still unsigned
gmp-test fatal error LNK1120: 5 unresolved externals
gmp-test error LNK2019: unresolved external symbol __imp____gmpz_mul_ui referenced in function "void __cdecl foo(struct __mpz_struct * const,struct __mpz_struct const * const,unsigned long)" (?foo@@YAXQAU__mpz_struct@@QBU1@K@Z)
gmp-test error LNK2019: unresolved external symbol __imp____gmpz_init_set_str referenced in function _main
gmp-test error LNK2019: unresolved external symbol __imp____gmpz_init referenced in function _main
gmp-test error LNK2019: unresolved external symbol __imp____gmpz_add_ui referenced in function "void __cdecl foo(struct __mpz_struct * const,struct __mpz_struct const * const,unsigned long)" (?foo@@YAXQAU__mpz_struct@@QBU1@K@Z)
gmp-test error LNK2019: unresolved external symbol __imp____gmp_printf referenced in function _main
Я всё таки нашёл ошибку...:)09.03.05 22:18 Автор: hotice Статус: Незарегистрированный пользователь
А дело было н в линкере, а в подключеннии gmp.h, вместо #include <gmp.h>, надо поставить #include "gmp.h" и всё начинает работать нормально без ошибок...:)
Всем спасибо большое!:)
P.S.Вё гениальное просто
Подлючить либу надо17.02.05 11:31 Автор: amirul <Serge> Статус: The Elderman
Естественно эту самую gmp.lib надо положить так, чтобы линкер ее нашел (общеIDE-шные пути прописываются в Options..., а пути для конкретного проекта - в его настройках). Для тестовых программок легче всего положить эту либу прямо в каталог с проектом
так видимо библиотеку gmp надо как-то в VC подстегнуть к проекту17.02.05 09:29 Автор: LLL <Алексей> Статус: Member
Вставил в пограмму #Pragma но ничего неизменилось. А когда подключал либу увидел следуюшие в Linker -> Command line:
/OUT:"Debug/gmp-test.exe" /INCREMENTAL /NOLOGO /LIBPATH:"C:\Program Files\Microsoft Visual Studio .NET\Vc7\lib\gmp.lib" /DEF:"C:\WINNT\system32\gmp.lib" /DEBUG /PDB:"Debug/gmp-test.pdb" /SUBSYSTEM:CONSOLE /MACHINE:IX86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "\WINNT\system32\gmp.lib"
но так у меня ни чего и не вышло. Может это из-за того что хоть у меня и MS Visual Studio .Net Но С++ у меня 7.0. В логе на адреса посмотрите
Я бы порекомендовал покурить rtfm [update]21.02.05 13:02 Автор: amirul <Serge> Статус: The Elderman Отредактировано 21.02.05 14:02 Количество правок: 1
> Вставил в пограмму #Pragma но ничего неизменилось. А когда > подключал либу увидел следуюшие в Linker -> Command > line: > /OUT:"Debug/gmp-test.exe" /INCREMENTAL /NOLOGO > /LIBPATH:"C:\Program Files\Microsoft Visual Studio > .NET\Vc7\lib\gmp.lib" /DEF:"C:\WINNT\system32\gmp.lib" > /DEBUG /PDB:"Debug/gmp-test.pdb" /SUBSYSTEM:CONSOLE > /MACHINE:IX86 kernel32.lib user32.lib gdi32.lib > winspool.lib comdlg32.lib advapi32.lib shell32.lib > ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib > "\WINNT\system32\gmp.lib"
> но так у меня ни чего и не вышло. Может это из-за того что > хоть у меня и MS Visual Studio .Net Но С++ у меня 7.0. В > логе на адреса посмотрите Как минимум три прогона. В пути к библиотекам указана сама библиотека. Эта же библиотека (но уже в system32) указана в качестве DEF-файла (зачем?). И последняя (не совсем ошибка, но потенциально опасная настройка) - путь к библиотеке указан от корня ТЕКУЩЕГО диска (но тоже почему то в system32) если система и visual studio находятся на одном диске - ничего страшного. Если на разных - линковаться не будет. И во вторых (в том же месте), на фига давать полный путь к библиотеке линкера?
В общем покури мануалы в части работы с линкером и сможешь исправить все сам (сразу скажу, что именно с указанным тобой дистрибутивом gmp из библиотеки core я работал - там все отлично компилится)
Вообщем пути я убрал pragm'у оставил, но мануалов у меня нет, вообщем с линкерол я не разобрался ошибки остались... Подскажите какие мануалы, в плане содержания нужны, если не трудно с ссылкой или названием...
З.Ы. Я понял что по линкеру мануал... но что ??? именно
Дык прагму оставить, а либу положить в каталог с проектом (туда где валяются исходники)23.02.05 11:39 Автор: amirul <Serge> Статус: The Elderman
> Вообщем пути я убрал pragm'у оставил, но мануалов у меня > нет, вообщем с линкерол я не разобрался ошибки остались... > Подскажите какие мануалы, в плане содержания нужны, если не > трудно с ссылкой или названием... Мануал по всем виндовым продуктам называется MSDN
Про MSDN знаю, но инет не халявный и я даже не знаю что искать01.03.05 22:17 Автор: hotice Статус: Незарегистрированный пользователь
> Вообщем я скачал по адресу > http://www.cs.nyu.edu/exact/core/gmp/ готовые библиотеки > под VC++, но у меня возникли проблемы когда я попытался > откомпилить тестовый пример. Может кто знает как этой > штукой пользоваться, а то я с английским не очень дружу. Я знаю. И с английским дружу. Еще вопросы есть? За подробностями - по ссылке, данной DamNet-ом