Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Deklarowanie bibliotek

Ostatnio zmodyfikowano 2014-11-12 14:53
Autor Wiadomość
Merulo
Temat założony przez niniejszego użytkownika
Deklarowanie bibliotek
» 2014-11-11 14:20:55
Ostatnio udało mi się zainstalować bibliotekę SDL. Korzystałem z tej instrukcji: http://lazyfoo.net/tutorials/SDL/01_hello_SDL/windows/codeblocks/index.php
Wersja Code Blocks: 4.7.1 SDL: 2.0.3

O ile sama biblioteka sprawuje się świetnie, to problem pojawia się gdy chcę użyć innej, np: iostream. W przypadku braku jakichkolwiek zmian w opcjach pojawia się standardowy komunikat:

fatal error: iostream: No such file or directory

W przypadku gdy ręcznie wejdę w:
Settings -> Compiler -> Search Directories
A następnie ręcznie dodam ścieżki do kompilatora (zarówno linker i compiler) to w przypadku iostream'a otwiera mi się kod źródłowy biblioteki iostream z błędem:

fatal error: bits/c++config.h: No such file or directory|

Wiem że chodzi o to że  nie potrafi znaleźć "bits/c++config.h" ale gdy dodam ten plik jakiś inny się wysypuje.
<Wydaje mi się to ciekawe, ale może się mylę i jest to coś normalnego. Pobawiłem się z innymi bibliotekami w projekcie który obsługuje SDL. Te które sprawdziłem nie działały z wyjątkiem #include <windows.h>>

Szukam porad, informacji. Posiadam dostęp do DreamSpark'a wiec mogę się przenieść na VS.
P-120365
Chlorek
» 2014-11-11 17:20:59
1. 4.7.1 to nie wersja Code::Blocks
2. O ile normalnie ci wszystko działa a zrobiłeś dokładnie jak w tym tutorialu to nie powinno być problemu bo nie masz ustawionych innych folderów z nagłówkami/libkami niż standardowe. Czy tworząc nowy PUSTY projekt możesz normalnie użyć iostream itd?
3. Może masz archaiczny kompilator w którym biblioteki STL miały nazwy z .h na końcu?
P-120376
Merulo
Temat założony przez niniejszego użytkownika
Odpowiedź
» 2014-11-11 18:30:01
AD 1. Tak, masz rację. Mój błąd.
AD 3. Nie, to nie jest rozwiązanie.
AD 2. Wygląda na to że podczas instalacji SDL2 sprawiłem że ustawienia dla projektu stały się ustawieniami globalnymi. Mogłem stworzyć dowolny plik i używać w nim SDL. Teraz to naprawiłem. SDL działa jedynie w projekcie odpowiedzialnym za niego. Ale niestety, teraz nie znajduje żadnych bibliotek. Tak jak i w PUSTYM projekcie, tak jak i w zwykłym nowo utworzonym żadne biblioteki nie są odczytywane. Utworzone wcześniej pliki <przed zabawą z SDL> kompilują się bez problemu. Czy masz jakiś pomysł jak przywrócić standardowe biblioteki? A co ważniejsze jak przywrócić stare biblioteki i używać SDL w tym samym pliku.
P-120378
Chlorek
» 2014-11-11 18:44:49
Search directories (przez Settings -> Compiler) ustaw na te gdzie masz standardowe foldery include i lib. Ja sam pod windą instaluję biblioteki do jednego folderu ewentualnie tylko tworząc na nie podfoldery. Porządek i wygoda w jednym miejscu.

Swoją drogą to chyba jakiś bug Code::Blocks, powinien korzystać z domyślnych katalogów w folderze kompilatora oraz tych dodatkowo zdefiniowanych. Ty natomiast definiując własny folder jakimś sposobem zastąpiłeś korzystanie z domyślnych, to chyba nie jest poprawne działanie. Ogólnie domyślne foldery nie są nigdzie zdefiniowane, po prostu są brane ze ścieżki do kompilatora (co to masz w Toolchain Executables jako ścieżkę do kompilatora, np C:\MinGW).
P-120380
Merulo
Temat założony przez niniejszego użytkownika
Odp
» 2014-11-11 19:39:05
Właśnie ściągnąłem  MinGW. Zainstalowałem w domyślnym miejscu.
C:\MinGW
mam tam foldery include i lib. To je powinienem ustawić? Bo w tym w include nie ma nic o nazwie iostream.
Są dwa pliki iostream w całym folderze z kompilatorem. Mianowicie:
C:\MinGW\lib\gcc\mingw32\4.8.1\include\c++
oraz
C:\MinGW\mingw32\lib\gcc\mingw32\4.8.1\include\c++

Który wybrać? i który plik lib do tego? Bo ich też jest całkiem sporo
P-120382
Jacob99
» 2014-11-11 19:43:15
Najlepiej wejdź w Settings->Compiler->Global Compiler Settings->Reset Defaults
Później ustaw sobie już w projekcie (i tylko w projekcie!) ścieżki do SDL-a.
P-120383
Merulo
Temat założony przez niniejszego użytkownika
» 2014-11-11 19:55:51
To nie pomogło, wciąż nie znajduję biblioteki iostream. Dodatkowo obawiam się że nie rozwiąże to głównego problemu - w projekcie nadal będę mógł używać tylko SDL2 bez innych bibliotek
P-120385
Chlorek
» 2014-11-12 10:57:55
Cuda się dzieją, zrób "hard reset", usuń IDE, upewnij się że nie zostały nigdzie żadne ustawienia - w tym w rejestrze i zainstaluj ponownie.
P-120421
« 1 » 2
  Strona 1 z 2 Następna strona