Problemik z Microsoft Visual C++ Studio

lordQubalus
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 22 mar 2009, o 14:42
Płeć: Mężczyzna
Podziękował: 2 razy

Problemik z Microsoft Visual C++ Studio

Post autor: lordQubalus »

Jak zbuildować programik tak, by działał też na innych komputerach.

Robię tak:
Normalnie daję Build/Build Solution, a następnie zapisuję i kopiuje z plików plik cośtam.exe. Daję go na pulpit, uruchamiam i wszystko działa, a jak przeniosę na pendrive'ie do szkoły, to nie chce się włączyć.
Wiecie, o co może chodzić? Może trzeba jakoś dołączyć do tego pliku biblioteki czy cóś? Pomóżcie.
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

Problemik z Microsoft Visual C++ Studio

Post autor: spajder »

lordQubalus
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 22 mar 2009, o 14:42
Płeć: Mężczyzna
Podziękował: 2 razy

Problemik z Microsoft Visual C++ Studio

Post autor: lordQubalus »

Nic z tego.

Przy buildowaniu wyskakuje mi 19 błędów:

Kod: Zaznacz cały

1>source.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(unsigned long)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::operator>>(unsigned long &)" (??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" (?length@?$char_traits@D@std@@SAIPBD@Z) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: static bool __cdecl std::char_traits<char>::eq_int_type(int const &,int const &)" (?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: static int __cdecl std::char_traits<char>::eof(void)" (?eof@?$char_traits@D@std@@SAHXZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: bool __thiscall std::ios_base::good(void)const " (?good@ios_base@std@@QBE_NXZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags@ios_base@std@@QBEHXZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" (?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: int __thiscall std::ios_base::width(void)const " (?width@ios_base@std@@QBEHXZ) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: int __thiscall std::ios_base::width(int)" (?width@ios_base@std@@QAEHH@Z) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z) already defined in msvcprtd.lib(MSVCP90D.dll)
1>source.obj : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" (?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z) already defined in msvcprtd.lib(MSVCP90D.dll)
i co?

Kod wygląda tak:

Kod: Zaznacz cały

#include<iostream>
using std::cin;
using std::cout;
int main()
{
	unsigned long a=0, b=1, n, x;
	cout<<"Podaj numer elementu ciagu Fibonacciego, ktorego wartosc chcesz znac:";
	cin>>n;
	cout<<"
";

	switch(n)
	{
		case 1:
			x=a;
			break;

		case 2:
			x=b;
			break;

		default:
			for(int i=2;i!=n;i++)
			{
				x=a+b;
				a=b;
				b=x;
			}
			break;
	}
	cout<<"element nr "<<n<<" ma wartosc "<<x<<"

";

}
Nie wiem, czy dobrze rozumiem, że chodzi o jakieś zbieżności nazw z bibliotek iostream i MSVCP90D.dll (???).
Awatar użytkownika
kolanko
Użytkownik
Użytkownik
Posty: 1905
Rejestracja: 9 gru 2006, o 14:23
Płeć: Mężczyzna
Lokalizacja: Łańcut
Podziękował: 32 razy
Pomógł: 172 razy

Problemik z Microsoft Visual C++ Studio

Post autor: kolanko »

Mialem taka sytuacje .. napisalem aplikacje w vc++ i nie chodzila u qmpla gosc zainstalowal frameworka i wszystko dziala jak nalezy. spróbuj .
lordQubalus
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 22 mar 2009, o 14:42
Płeć: Mężczyzna
Podziękował: 2 razy

Problemik z Microsoft Visual C++ Studio

Post autor: lordQubalus »

To nie jest takie proste, bo nie chodzi tu o jakiś jeden konkretny komputer, a poza tym i tak nie dam rady nic w szkole zainstalować, bo to może robić tylko admin.
Jestem pewien, że jakoś da się to "naprawić" w samym Visual C++'sie.

Może ktoś jest na tyle obeznany z tym programem, by zrozumieć te komunikaty o błędach.
Pomóżcie, plis.
Awatar użytkownika
Dedemonn
Użytkownik
Użytkownik
Posty: 689
Rejestracja: 21 lut 2007, o 19:40
Płeć: Mężczyzna
Lokalizacja: Z kompa
Podziękował: 26 razy
Pomógł: 137 razy

Problemik z Microsoft Visual C++ Studio

Post autor: Dedemonn »

Nie programuję już w C++, dlatego niezbyt precyzyjnie postaram się pomóc.
W opcjach projektu znajdź opcję jak mają być dołączane biblioteki do niego. Należy bodajże zmienić build na release. (musisz poszukać, bo nie mam pojęcia gdzie dokładnie to było)

Build z debug'a wymaga bibliotek, które są dostarczane z Visual Studio, więc nie znajdziesz ich na zwyczajnym komputerze. Dlatego należy powiedzieć kompilatorowi, że ma je do projektu dołączyć.

Pozdrawiam.
lordQubalus
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 22 mar 2009, o 14:42
Płeć: Mężczyzna
Podziękował: 2 razy

Problemik z Microsoft Visual C++ Studio

Post autor: lordQubalus »

Tak, to chyba rzeczywiście, o to chodziło.
Teraz plik cośtam.exe z 39 KB urósł do 156 KB. Zaraz wyślę to koledze, żeby sprawdził, czy działa.

Dzięki wielkie za pomoc.

EDIT: Właśnie mi odpisał, że wszystko działa poprawnie. Dzięki raz jeszcze.
ODPOWIEDZ