[#1] Dołączanie bibliotek w CubicIDE
Hi!

Mam taki śmieszny problem w CubicIDE. Dołączam biblioteki w opcjach
projektu (nie w makefile), kompiluję, dostaję takiego loga:

g++ -lGL -lGLU -lSDL -lSDL_gfx -lSDL_image -traditional-cpp -c -o o/gcc-morphos-stable/main.o main.cpp
g++: -lGL: linker input file unused since linking not done
g++: -lGLU: linker input file unused since linking not done
g++: -lSDL: linker input file unused since linking not done
g++: -lSDL_gfx: linker input file unused since linking not done
g++: -lSDL_image: linker input file unused since linking not done
g++ o/gcc-morphos-stable/main.o -lGL -lGLU -lSDL -lSDL_gfx -lSDL_image -traditional-cpp -o bin/gcc-morphos-stable/airport
Done.

Czyli programik się kompiluje, plik wykonywalny powstaje. Pierwsze
funkcje programu działają do momentu użycia jakiejkolwiek funkcji SDL.
Normalnie SDLowe funkcje są pomijane. :) O co tu chodzi? Dodam, że
przykładowe programy z SDK SDL się kompiluję i działają poprawnie. Co
się dzieje z tym dołączaniem bibliotek? Nie dopisują się one do
makefile ale jednak przy kompilacji są brane pod uwagę więc... Ma ktoś
jakieś doświadczenie z CubicIDE?

[#2] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #1

To raczej wyglada na problem z gcc badz srodowiskiem. Moze kompilujesz innym gcc niz myslisz....

[#3] Re: Dołączanie bibliotek w CubicIDE

@Kaczus, post #2

Hmmm... Nie mam innego GCC. Normalnie, poprawnie zainstalowany CubicIDE. Wszystkie inne projekty się kompilują i działają. Chociaż przyznać muszę, że wszystko co próbowałem było w C, a ja próbuję użyć C++.



Ostatnia modyfikacja: 30.11.07 09:26
[#4] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #3

Pewnie jest tam to co jest to co oficjalnie jest rozpowszechniane, a to z c++ ma problemy.... Wez morgotowego kompilatora tam masz wersje od 2-4 gcc i wszystko ladnie dziala... wiele bledow jest tam poprawionych, ktore po jakims czasie sa i poprawiane w oficjalnej wersji....



Ostatnia modyfikacja: 30.11.07 10:55
[#5] Re: Dołączanie bibliotek w CubicIDE

@Kaczus, post #4

No może. Nie sądzę jednak żeby to był błąd gcc. Ja po prostu nie umiem chyba dołączać bibliotek w CubicIDE. Ech, tak to jest jak człowiek ma GUI, a nie klepie w skryptach. :D

[#6] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #5

Ale to ci generuje jedynie makefile i z automatu przekierowuje tylko output - reszte robi gcc. Pogadaj z marcikiem, albo morgothem, i wez porzadna wersje kompilatora :)

PS.: marcik siedzi teraz na #ppa :)



Ostatnia modyfikacja: 30.11.07 10:59
[#7] Re: Dołączanie bibliotek w CubicIDE

@Kaczus, post #6

No ale właśnie makefile nie jest modyfikowany po dodaniu biblioteki. Ciągle jest taki sam jak ten, który tworzy się podczas robienia nowego projektu. Nawet jak dam mu ponowne budowanie makefile to jest taki bez bibliotek. A może one się nie mają dopisać do makefile i jest to robione jak to mówisz "w locie"?

Teraz Marcika molestował nie będę, bo nie jestem w domu i nie mógłbym tego nawet sprawdzić. Wrócę do chaty wieczorem to wskoczę na IRCa.

[#8] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #7

Makefile ma miejsca, gdzie wstawiane sa rzeczy "w locie" - np opcje kompilacji, zeby nie zmienial sie co zmiana opcji :) Sprytny pomysl, dzieki temu nie ma problemow takich jak w devc++ :)

[#9] Re: Dołączanie bibliotek w CubicIDE

@Kaczus, post #8

No w sumie tak. Chociaz przydałaby się opcja generowania pełnego makefile. Chociażby po to żeby się przenieść na "ręczny" sposób czy do innego środowiska.

[#10] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #9

g++ -lGL -lGLU -lSDL -lSDL_gfx -lSDL_image -traditional-cpp -c -o o/gcc-morphos-stable/main.o main.cpp
g++: -lGL: linker input file unused since linking not done
g++: -lGLU: linker input file unused since linking not done
g++: -lSDL: linker input file unused since linking not done
g++: -lSDL_gfx: linker input file unused since linking not done
g++: -lSDL_image: linker input file unused since linking not done


nie mam gcc pod ręką teraz ale po jaką cholere jest
zworka -l przy kompilowaniu obiektów i po co tam -o ?
pewnie dlatego pisze "input file unused since linking not done"



Ostatnia modyfikacja: 30.11.07 11:29
[#11] Re: Dołączanie bibliotek w CubicIDE

@rzookol, post #10

Nie wiem po co. :) Jakbym sam sobie pisał tego makefile to bym to wywalił. No ale to generuje CubicIDE. Ja tylko dodaję w jego GUI biblioteki, a makefile został sam wygenerowany. :)

[#12] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #9

no własnie po to by łatwo przenieść sie na reczny sposob jest tak generowany, bo co chcesz recznie mozesz zmienic, a on ci nie nadpisze makefila z automatu w devc++ niestety nadpisywal. Insza inszosc to mozliwosc generowania makefile'a do przeniesienia na osobne srodowisko - to w sumie byloby milym dodatkiem.

[#13] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #11

dobra juz wiem co jest nie tak (tzn chyba wiem bo nie mam dostepu do pega teraz)

w makefile nie ma -noixemul wiec nie dziala automatyczne otwieranie bibliotek i dlatego nie dzialają funkcje z powersdl.library (chyba ze otwierasz ją w srodku programu ale pewnie nie)

[#14] Re: Dołączanie bibliotek w CubicIDE

@rzookol, post #13

Dzięki! Jak wrócę wieczorem do domu to spróbuję jakoś włączyć "-noixemul". Zdam raport jak to zrobię (albo nie zrobię). :) Dzięki raz jeszcze.

[#15] Re: Dołączanie bibliotek w CubicIDE

@rzookol, post #13

Trafiłeś w sam środek problemu. Przełączyłem w opcjach "ixemul" na
"libnix", podczas kompilacji pojawiło się:

g++ -lGL -lGLU -lSDL -lSDL_gfx -lSDL_image -noixemul -traditional-cpp -c -o o/gcc-morphos-stable/main.o main.cpp
g++: -lGL: linker input file unused since linking not done
g++: -lGLU: linker input file unused since linking not done
g++: -lSDL: linker input file unused since linking not done
g++: -lSDL_gfx: linker input file unused since linking not done
g++: -lSDL_image: linker input file unused since linking not done
g++ o/gcc-morphos-stable/main.o -lGL -lGLU -lSDL -lSDL_gfx -lSDL_image -noixemul -traditional-cpp -o bin/gcc-morphos-stable/airport
Done.

Uruchomiłem to co się skompilowało i SDL działa. Otwiera się okno, a w
nim to co być powinno. :)

Co ciekawe jak pierwszy raz po zmianie opcji skompilowałem to te
wszystkie komunikaty "linker input file unused since linking not done"
się nie pojawiły tylko od razu "Done.". Teraz się pojawiają ale
wszystko działa. Masz jeszcze jakiś pomysł na te komunikaty? Co one
właściwie oznaczają (nie po angielsku tylko od strony programowania
rzecz jasna).

Raz jeszcze dzięki za skuteczną pomoc. OK

[#16] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #15

chodzi o to ze te pliki(sdl-a,tak naprawde obiekty linkowalne ) podczas kompilacji nie zostaly uwzglednione i llinker je pomija i Cie informuje bo nie uzyles libnixa jak rzookol zauwazyl.
mozesz zrobic test i dodac jakis inny obiekt poprzez -l ,zapewne g++ uraczy cie podobnym komunikatem.

[#17] Re: Dołączanie bibliotek w CubicIDE

@AmiChris, post #16

No właśnie "libnix" teraz jest włączony. Przynajmniej tak jest
ustawione w opcjach. :) Jak mam to rozumieć? Że te pliki nie zostały
dolinkowane? No to dlaczego to działa? :) Co właściwie robi i co to
jest ten "libnix"?

Wybaczcie podstawowe pytania ale naprawdę nie znam tego środowiska.
Pomimo tego, że jest dosyć standardowe jakoś nie miałem okazji go
używać. Wiem wiem... wstyd. :) No ale jakoś trzeba zacząć, nie? :)

[#18] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #17

libnix to takie rozszerzone amiba.lib sa w nim zawarte moduly startowe,mnostwo roznych funkcji etc. a wsrod nich wlasnie te tzw. autolib cos co automatycznie otwiera Ci biblioteki z ktorych korzystasz,oczywiscie nie wszystkie bo i tak niektore trzeba recznie otworzyc.
jedyna rzecz warta uwagi to to,ze uzywajac libnix-a nie mozesz uzywac biblioteki ixemul (ten switch -noixemul cos musi oznaczac).
ogolnie przyjmij,ze mosowe programy kompilujesz ze switchem -noixemul (za wyjatkiem Krashana :P )



Ostatnia modyfikacja: 30.11.07 22:45
[#19] Re: Dołączanie bibliotek w CubicIDE

@AmiChris, post #18

ogolnie przyjmij,ze mosowe programy kompilujesz ze switchem -noixemul.

E tam, prawdziwi twardziele używają -nostdlib -nostartfiles, tak jak ja. cool

[#20] Re: Dołączanie bibliotek w CubicIDE

@AmiChris, post #16

Użycie libnixa do tych komunikatów (linker input file unused since linking not done) nie ma znaczenia, poprostu przy kompilacji pliku źródłowego (-c) do obiektu (-o) nie ma linkowania, dlatego liby przy dyrektywie -l sa ignorowane.

[#21] Re: Dołączanie bibliotek w CubicIDE

@AmiChris, post #18

AmiChris:
Dzięki wielkie za bardzo sensowne wyjaśnienie. Dotarło do mnie i sobie
zapamiętałem. :)


Rafael/ARMO:
No w sumie racja! No nawet bardzo racja. :) No to w takim razie po co
CubicIDE próbuje dodlinkować przy kompilacji -c do -o te
nieszczęsne -l? Gdybym to ja sam pisał tego makefile to bym się nie
odzywał. No ale to jest standardowy makefile wygenerowany przez
CubicIDE. Taki gostek jak autor CubicIDE zrobił aż taki błąd?
Śmieszne. :)

[#22] Re: Dołączanie bibliotek w CubicIDE

@MDW, post #21

Nie jestem pewien ale makemake to chyba akurat napisał Maag^Da :)

[#23] Re: Dołączanie bibliotek w CubicIDE

@Kaczus, post #22

No zobacz jaki ten świat mały. :)

A to -l przy robieniu -o z -c niby nie przeszkadza. Ale tak jakoś...
sam wiesz. :)

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem