Własna biblioteka statyczna, Definicja metody w pliku cpp
Ostatnio zmodyfikowano 2014-08-17 17:30
ggerek Temat założony przez niniejszego użytkownika |
Własna biblioteka statyczna, Definicja metody w pliku cpp » 2014-08-17 15:37:22 Kawałki kodu : podstawa.hpp class Swiat { public: int g; void stworz( const Vector2d & grawitacja ); };
swiat.cpp #include "podstawa.hpp"
void Swiat::stworz( const Vector2d & grawitacja ) { g = grawitacja.y; }
Plik testowy main.cpp #include <easy2d.hpp>
int main() { Vector2d grawitacja( 0, 10 ); Swiat swiat; swiat.stworz( grawitacja ); StatycznyObjekt ziema; }
Dostaje błąd przy kompilacji pliku testowego undefined reference to `Swiat::stworz(Vector2d const&) |
|
1aam2am1 |
» 2014-08-17 15:50:36 main.cpp #include "podstawa.hpp" ? |
|
pekfos |
» 2014-08-17 15:50:51 Linkujesz tę bibliotekę? |
|
ggerek Temat założony przez niniejszego użytkownika |
» 2014-08-17 16:17:20 Zapomniałem dać w poprzednim poście #include "podstawa.hpp" Już z edytowałem. Oczywiście zlinkowałem bibliotekę, w między czasie szukając rozwiązania zupełnie innego problemu czytałem, że w takim przypadku jak ja mam podstawa.hpp nie wie gdzie szukać definicji metody. |
|
pekfos |
» 2014-08-17 16:30:21 czytałem, że w takim przypadku jak ja mam podstawa.hpp nie wie gdzie szukać definicji metody. |
To musiałeś źle zrozumieć. Podaj kompletne logi. |
|
ggerek Temat założony przez niniejszego użytkownika |
» 2014-08-17 16:34:19 ||=== Build: Debug in easy2d-test (compiler: GNU GCC Compiler) ===| obj\Debug\main.o||In function `main':| F:\easy2d\easy2d-test\easy2d-test\main.cpp|8|undefined reference to `Swiat::stworz(Vector2d const&)'| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| Gdy miałem definicje metody Swiat::stworz( Vector2d const & grawitacja ) w podstawa.hpp to wszystko działało, a gdy przeniosłem ją do swiat.cpp to jest to co jest teraz |
|
Jacob99 |
» 2014-08-17 16:37:57 Podaj pełny kod z wszystkich plików. |
|
ggerek Temat założony przez niniejszego użytkownika |
» 2014-08-17 16:41:16 Biblioteka statyczna : podstawa.hpp class Vector2d { public: int x; int y; Vector2d( int x, int y ) : x( x ) , y( y ) { } };
class Zjawisko { };
class Wiatr : private Zjawisko { };
class Swiat { public: int g; void stworz( const Vector2d & grawitacja ); };
class Objekt { public: int x; int y; void wymiary( int x, int y ); }; class StatycznyObjekt : private Objekt { public: int m; }; class DynamicznyObjekt : private Objekt { public: int m; int V; };
swiat.cpp #include "podstawa.hpp"
void Swiat::stworz( const Vector2d & grawitacja ) { g = grawitacja.y; }
easy2d.hpp Program testowy: main.cpp #include <easy2d.hpp> #include <iostream>
int main() { Vector2d grawitacja( 0, 10 ); Swiat swiat; swiat.stworz( grawitacja ); StatycznyObjekt ziema; }
|
|
« 1 » 2 3 |