malan |
» 2010-09-22 22:16:32 |
|
Elaine |
» 2010-09-22 22:41:04 Twój program i tak nie będzie działał na komputerze bez zainstalowanego mingwa. |
Zależy od tego, skąd i kiedy on tego MinGWa wziął - AFAIR distro Stephana Lavaveja ciągle ma tylko biblioteki statyczne, TDM od niedawna (chyba od GCC 4.5.0) ma domyślnie biblioteki dynamiczne + statyczne jako opcja, oficjalna wersja chyba podobnie, tylko dynamiczne są domyślne już od jakiegoś czasu.
@OP: sprawdzić w dokumentacji, jak statycznie zlinkować libgcc i libstdc++. |
|
Elejdor Temat założony przez niniejszego użytkownika |
» 2010-09-23 20:56:15 Zrobiłem reinstall code blocks i nic się nie zmieniło. Iname jestem początkujący i nie wiem o co Ci chodzi. Proszę wytłumacz mi jak krowie na granicy. Może wystarczy ściągnąć inną wersję mingw? |
|
DejaVu |
» 2010-09-23 21:07:32 Jeżeli chodzi Ci o to, że program nie działa na innych komputerach to wynika to z faktu, że masz linkowanie dynamiczne i należy ustawić flagę dla kompilatora by linkowanie było statyczne. Taką opcję da się ustawić w opcjach kompilatora w dowolnym środowisku programowania z tym, że trzeba doczytać jak ta opcja się zwie i gdzie ją wpisać. Szukaj w googlach "MinGW linkowanie statyczne Windows", czy coś w ten deseń. Szybko powinieneś trafić na odpowiedź. |
|
Elejdor Temat założony przez niniejszego użytkownika |
» 2010-09-24 13:44:11 Szukałem z pół godziny i nie znalazłem niczego co by mi pomogło. Nie mam pojęcia jak linkować biblioteki statycznie. Na większości forach po prostu pisali "Zalinkuj program statycznie." i każdy wiedział o co chodzi. |
|
DejaVu |
» 2010-09-24 14:32:10 http://utak3r.pl/index.php?/archives/101-GCC_statycznie_linkowana_biblioteka_standardowa_C++.html
Stworzyłem w katalogu ze źródłami symlink do statycznej wersji biblioteki standardowej, prawidłowy plik wskazał mi sam gcc:
ln -s `arm-unknown-linux-uclibcgnueabi-g++ -print-file-name=libstdc++.a`
teraz, mając w katalogu źródeł taki symlink, w Makefile dałem:
LDFLAGS = -v -static-libgcc -L. |
/edit:
Inne źródło:
g++ -static -I../test1/include -L../test1/lib ./src/main.cpp ../test1/lib/libtest1.a -o ./build/MyApp
|
|
Elejdor Temat założony przez niniejszego użytkownika |
» 2010-09-24 16:32:39 Stworzyłem w katalogu ze źródłami symlink do statycznej wersji biblioteki standardowej, prawidłowy plik wskazał mi sam gcc:
ln -s `arm-unknown-linux-uclibcgnueabi-g++ -print-file-name=libstdc++.a`
teraz, mając w katalogu źródeł taki symlink, w Makefile dałem:
LDFLAGS = -v -static-libgcc -L.
Co to jest symlink? Jak "dać coś" w makefile (o ile coś takiego na winie istnieje)? Gdzie są źródła? Jak zrobić żeby gcc wyświetlił gdzieś "prawilowy plik"? Co zrobić gdy już będę miał ten blik?
PS: Korzystam z windowsowej wersji code::blocks. |
|
DejaVu |
» 2010-09-24 16:54:41 Cóż... będę w domu to Ci zapodam wierszem, którego używałem do kompilacji statycznej pod linuxem i FreeBSD.
PS. Akurat zainteresowałeś się nie tą linijką co trzeba z posta, którego napisałem. |
|
1 2 « 3 » 4 |