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

Własna biblioteka statyczna, Definicja metody w pliku cpp

Ostatnio zmodyfikowano 2014-08-17 17:30
Autor Wiadomość
Jacob99
» 2014-08-17 16:48:59
Objekt? Naucz się pisać po polsku(lub po angielsku). Czyli Obiekt lub Object.

Poza tym w programie testowym masz linijkę
#include <easy2d.hpp>
W dyrektywach preprocesora można używać zarówno cudzysłowów jak i nawiasów ostrych <>, ale różnica jest taka, że plik podany w cudzysłowach jest najpierw szukany w plikach projektu, a podany w <> jest szukany w plikach kompilatora.

A poza tym po co robić takie kombinacje zamiast napisać po prostu
#include "podstawa.hpp"
?
P-115626
pekfos
» 2014-08-17 16:49:09
||=== 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)) ===|
Pełne logi w Code::Blocks

Poza tym w programie testowym masz linijkę
#include <easy2d.hpp>
W dyrektywach preprocesora można używać zarówno cudzysłowów jak i nawiasów ostrych <>, ale różnica jest taka, że plik podany w cudzysłowach jest najpierw szukany w plikach projektu, a podany w <> jest szukany w plikach kompilatora.
I ma coś z tym zrobić?
P-115627
ggerek
Temat założony przez niniejszego użytkownika
» 2014-08-17 16:58:09
Jacob99 zaraz zmienię na nawiasy ostre, ale proszę Ciebie nie obrażaj mnie, też mi to dziwnie wyglądało, ale zapomniałem to zmienić.
Łatwiej mi tak, bo mogę mieć wtedy jeden plik .hpp, a w nim inne i mogę dołączać tylko ten jeden, a nie dziesięć.

Pekfos Miałem ustawione pełne logi, na wszelki wypadek zrobiłem dokładnie według instrukcji i nic w logach się nie zmieniło.

Edit: Zmiana nawiasów nic nie zmieniła
P-115628
Jacob99
» 2014-08-17 17:01:37
Masz zmienić nawiasy ostre na cudzysłowy, a nie odwrotnie.
A pełne logi z build loga wyglądają tak:
mingw32-g++.exe -std=c++11 -Wall -g -O2 -std=c++11 -I"D:\SFML 2.1\include" -I"D:\Projekty C++\GAME OF THE YEAR EDITION MAP CREATOR\include" -c "D:\Projekty C++\GAME OF THE YEAR EDITION MAP CREATOR\src\Editor.cpp" -o obj\Release\src\Editor.o
D:\Projekty C++\GAME OF THE YEAR EDITION MAP CREATOR\src\Editor.cpp: In function 'int main()':
D:\Projekty C++\GAME OF THE YEAR EDITION MAP CREATOR\src\Editor.cpp:52:9: warning: unused variable 'tile' [-Wunused-variable]
mingw32-g++.exe -L"D:\SFML 2.1\lib" -o "bin\Release\GAME OF THE YEAR EDITION MAP CREATOR.exe" obj\Release\src\Editor.o  -s  -lsfml-graphics -lsfml-window -lsfml-system -mwindows
Output file is bin\Release\GAME OF THE YEAR EDITION MAP CREATOR.exe with size 344.00 KB
Process terminated with status 0 (0 minute(s), 1 second(s))
0 error(s), 1 warning(s) (0 minute(s), 1 second(s))
A logi wstawiamy w znaczniki[log][/log]
P-115629
ggerek
Temat założony przez niniejszego użytkownika
» 2014-08-17 17:05:35
-------------- Build: Debug in easy2d-test (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -g -std=c++11 -I..\..\easy2d -c F:\easy2d\easy2d-test\easy2d-test\main.cpp -o obj\Debug\main.o
mingw32-g++.exe  -o bin\Debug\easy2d-test.exe obj\Debug\main.o  
F:\easy2d\easy2d-test\easy2d-test\main.cpp: In function 'int main()':
F:\easy2d\easy2d-test\easy2d-test\main.cpp:9:18: warning: unused variable 'ziema' [-Wunused-variable]
  StatycznyObjekt ziema;
                  ^
obj\Debug\main.o: In function `main':
F:/easy2d/easy2d-test/easy2d-test/main.cpp:8: undefined reference to `Swiat::stworz(Vector2d const&)'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 1 warning(s) (0 minute(s), 0 second(s))
 

Nie na tą zakładkę patrzyłem.....

Zmiana z ostrych na cudzysłowy i odwrotnie nie pomogła, nic się nie zmieniło.
P-115630
pekfos
» 2014-08-17 17:08:26
Nie linkujesz swojej biblioteki.
P-115631
ggerek
Temat założony przez niniejszego użytkownika
» 2014-08-17 17:11:47
C/C++
#include <easy2d.hpp>
#include <iostream>

int main()
{
    Vector2d grawitacja( 0, 10 );
    Swiat swiat;
    //swiat.stworz(grawitacja); reszta kodu pozostala bez zmian
    StatycznyObjekt ziema;
    std::cout << grawitacja.x;
}

-------------- Build: Debug in easy2d-test (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -g -std=c++11 -I..\..\easy2d -c F:\easy2d\easy2d-test\easy2d-test\main.cpp -o obj\Debug\main.o
mingw32-g++.exe  -o bin\Debug\easy2d-test.exe obj\Debug\main.o  
F:\easy2d\easy2d-test\easy2d-test\main.cpp: In function 'int main()':
F:\easy2d\easy2d-test\easy2d-test\main.cpp:7:8: warning: unused variable 'swiat' [-Wunused-variable]
  Swiat swiat;
        ^
F:\easy2d\easy2d-test\easy2d-test\main.cpp:9:18: warning: unused variable 'ziema' [-Wunused-variable]
  StatycznyObjekt ziema;
                  ^
Output file is bin\Debug\easy2d-test.exe with size 990.37 KB
Process terminated with status 0 (0 minute(s), 0 second(s))
0 error(s), 2 warning(s) (0 minute(s), 0 second(s))
 

-------------- Run: Debug in easy2d-test (compiler: GNU GCC Compiler)---------------

Checking for existence: F:\easy2d\easy2d-test\easy2d-test\bin\Debug\easy2d-test.exe
Executing: "F:\easy2d\easy2d-test\easy2d-test\bin\Debug\easy2d-test.exe"  (in F:\easy2d\easy2d-test\easy2d-test\.)
Process terminated with status 0 (0 minute(s), 0 second(s))

I teraz stary main.cpp
C/C++
#include <easy2d.hpp>
#include <iostream>

int main()
{
    Vector2d grawitacja( 0, 10 );
    Swiat swiat;
    swiat.stworz( grawitacja );
    StatycznyObjekt ziema;
    std::cout << grawitacja.x;
}

-------------- Build: Debug in easy2d-test (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -g -std=c++11 -I..\..\easy2d -c F:\easy2d\easy2d-test\easy2d-test\main.cpp -o obj\Debug\main.o
mingw32-g++.exe  -o bin\Debug\easy2d-test.exe obj\Debug\main.o  
F:\easy2d\easy2d-test\easy2d-test\main.cpp: In function 'int main()':
F:\easy2d\easy2d-test\easy2d-test\main.cpp:9:18: warning: unused variable 'ziema' [-Wunused-variable]
  StatycznyObjekt ziema;
                  ^
obj\Debug\main.o: In function `main':
F:/easy2d/easy2d-test/easy2d-test/main.cpp:8: undefined reference to `Swiat::stworz(Vector2d const&)'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 1 warning(s) (0 minute(s), 0 second(s))
P-115632
pekfos
» 2014-08-17 17:13:56
Nie linkujesz swojej biblioteki.
P-115633
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona