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

Własna biblioteka, a plik nagłówkowy

Ostatnio zmodyfikowano 2015-04-02 13:51
Autor Wiadomość
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).
P-129827
pekfos
» 2015-04-01 18:24:39
To tak nie działa.
P-129828
CacholaPL
Temat założony przez niniejszego użytkownika
» 2015-04-01 18:35:30
W takim razie jak to działa ?
P-129829
pekfos
» 2015-04-01 18:51:25
Musisz podać plik biblioteki do linkera.
P-129830
CacholaPL
Temat założony przez niniejszego użytkownika
» 2015-04-01 19:10:08
Rozumiem, ale podczas pisania programu powinno być takie coś

C/C++
#include <jakasbiblioteka.h> //plik nagłówkowy, który nie wiem jak stworzyć

int main()
{
    CreateWindow(); //Przykładowa funkcja biblioteki
}

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.
P-129832
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.
P-129834
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.
P-129835
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:
C/C++
#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:
C/C++
#include <TuxEngine.h>

int main()
{
    CreateWindow( 800, 600, 32, "Tux Engine" );
    ClearColor( "Blue" );
}

Kod pliku nagłówkowego
C/C++
void CreateWindow( int, int, int, string );
void ClearColor( string );
P-129841
« 1 » 2
  Strona 1 z 2 Następna strona