Консультация № 55334
13.09.2006, 19:53
0.00 руб.
0 5 3
Хотел использовать библиотеку GMP (GNU MP) в своей программе, но программа почему-то не компилируется. Взял простой пример из доккументации, но и тут нечего не получается. При использовании VS2005 выводится сообщение об ошибке (см. приложение).

Однако,если закомментировать строку cout<<c; то программа компануется нормально. В чём дело, помогите?

Приложение:
#pragma comment(lib, "gmp")#include"gmp.h"#include <gmpxx.h>#include<iostream> using std::cout;int main (){mpz_class a, b, c;a = 1234;b = "-5678";c = a+b;cout<<c;return 0;}LINK : warning LNK4098: defaultlib ‘LIBC‘ conflicts with use of other libs; use /NODEFAULTLIB:library5.obj : error LNK2019: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,struct __mpz_struct const *)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PBU__mpz_struct@@@Z) referenced in function "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class __gmp_expr<class __gmpz_value,class __gmpz_value> const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$__gmp_expr@V__gmpz_value@@V1@@@@Z)C:\Temp\5\Debug\5.exe : fatal error LNK1120: 1 unresolved externals

Обсуждение

Неизвестный
13.09.2006, 20:32
общий
это ответ
Здравствуйте, Viper!
правильно будет:
cout<<c<<endl;
Неизвестный
13.09.2006, 23:24
общий
это ответ
Здравствуйте, Viper!
Вроде бы компилятор написал что нужно сделать: use /NODEFAULTLIB:library.
Project -> Properties -> Linker -> Command Line.
ЗЫ: могу ошибаться.
Неизвестный
13.09.2006, 23:38
общий
Это ничего принципиально не меняет, только исчезает предупреждение компоновщика (warning LNK4098), ошибка же по прежднему остаётся.
Неизвестный
14.09.2006, 05:22
общий
это ответ
Здравствуйте, Viper!
Когда я сталкивался с этой проблемой, я нашел выход в использовании библиотеки STLPort (www.stlport.org) вместо STL, идущего вместе со студией. Кстати, очень популярная реализация STL, и очень многие ее используют вместо MS-овской. И вам также советую. Тогда не будет подобных проблем...
Неизвестный
14.09.2006, 09:28
общий
to InviZ:А причём здесь STL? Я её вроде даже и не использовал?!
Форма ответа