CacholaPL Temat założony przez niniejszego użytkownika |
Własna biblioteka, a plik nagłówkowy » 2015-04-01 18:21:52 Witam, otóż napisałem własną bibliotekę i używając g++ zrobiłem plik .a. Teraz potrzebuję zrobić plik nagłówkowy, który się includuje, żeby kompilator wiedział, gdzie znaleźć tą bibliotekę, tylko jak taki plik powinien wyglądać ? Co powinien zawierać, aby odwoływał się do mojej biblioteki (z rozszerzeniem .a). |
|
pekfos |
» 2015-04-01 18:24:39 To tak nie działa. |
|
CacholaPL Temat założony przez niniejszego użytkownika |
» 2015-04-01 18:35:30 W takim razie jak to działa ? |
|
pekfos |
» 2015-04-01 18:51:25 Musisz podać plik biblioteki do linkera. |
|
CacholaPL Temat założony przez niniejszego użytkownika |
» 2015-04-01 19:10:08 Rozumiem, ale podczas pisania programu powinno być takie coś #include <jakasbiblioteka.h>
int main() { CreateWindow(); }
I potrzebuję stworzyć plik "jakasbiblioteka.h", żebym mógł zaincludować ten plik do programu. Przecież nie powiem kompilatorowi, żeby zaincludował plik .a. Potrzeba stworzyć plik nagłówkowy, a nie wiem co powinien w sobie zawierać. Przecież trzeba oprócz linkera dodać ścieżkę do właśnie pliku nagłówkowego. |
|
Monika90 |
» 2015-04-01 19:20:54 Ty napisałeś bibliotekę, więc to ty powinieneś wiedzieć co ma zawierać plik nagłówkowy. Typowo zawiera on deklaracje funkcji, definicje klas, itp. |
|
CacholaPL Temat założony przez niniejszego użytkownika |
» 2015-04-01 19:23:23 Dzięki, chciałem się upewnić, że wszystko robię dobrze. |
|
CacholaPL Temat założony przez niniejszego użytkownika |
» 2015-04-01 20:30:34 Jednak nie działa. Próbuję zadeklarować funkcję, wraz z parametrami, ale cały czas są jakieś błędy. ||=== Build: Debug in Tux Engine Test (compiler: GNU GCC Compiler) ===| ../Tux Engine/include/TuxEngine.h|1|error: ‘string’ has not been declared| ../Tux Engine/include/TuxEngine.h|2|error: variable or field ‘ClearColor’ declared void| ../Tux Engine/include/TuxEngine.h|2|error: ‘string’ was not declared in this scope| /home/mateusz/Tux Engine Test/main.cpp||In function ‘int main()’:| /home/mateusz/Tux Engine Test/main.cpp|5|error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]| ../Tux Engine/include/TuxEngine.h|1|error: initializing argument 4 of ‘void CreateWindow(int, int, int, int)’ [-fpermissive]| /home/mateusz/Tux Engine Test/main.cpp|6|error: ‘ClearColor’ was not declared in this scope| ||=== Build failed: 6 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Kod silnika: #include <SFML/Graphics.hpp> #include <SFML/OpenGL.hpp> #include <GL/gl.h> #include <string>
using namespace std;
void CreateWindow( int szerokosc, int wysokosc, int kolory, string nazwa ) { sf::RenderWindow okno( sf::VideoMode( szerokosc, wysokosc, kolory ), nazwa ); sf::Event zdarzenie; while( okno.isOpen() ) { while( okno.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) { okno.close(); } } okno.display(); } }
void ClearColor( sf::RenderWindow okno, std::string kolor ) { if( kolor == "Blue" ) { okno.clear( sf::Color::Blue ); } }
Kod programu w tej bibliotece: #include <TuxEngine.h>
int main() { CreateWindow( 800, 600, 32, "Tux Engine" ); ClearColor( "Blue" ); }
Kod pliku nagłówkowego void CreateWindow( int, int, int, string ); void ClearColor( string );
|
|
« 1 » 2 |