Podział programu na moduły

0

Witajcie. W jakiej kolejnośći powinny być dodawane wszystkie includy, aby nie wyświetlalo "Undefined reference to funkcja"? Osobne pliki buildują się, ale podczas linkowania projektu w całośc wyświetla mi się to zawsze. Chodzi o to, że w mainie i w innym pliku cpp dodaję tą samą bibliotekę. Jak to rozwiązać? IDE to Code::Blocks

0

Podaj okrojony przykład kodu, który powoduje takie zachowanie... Albo - może po prostu plik implementacji (cpp) nie jest dodany do projektu?

0

Chodzi o program w WinApi wiec okrojony kod to ciezko bedzie.

W glownym pliku mam:
#include <windows.h>
#include <Windowsx.h>
#include "Obsluga_plikow.h"

a w pliku cpp:
#include <windows.h>
#include "Obsluga_plikow.h"

W ogóle tego podziału i dolaczania nie rozumiem. Jest to gdzies jakos ladnie wyjasnione? Poki co nie znalazlem takiej stronki :/

0

Czy w Projekcie masz dodane obydwa pliki .cpp?

0

w projekcie są obydwa pliki .cpp i plik .h

0

A jaki konkretnie dostajesz błąd? Bo w tej chwili to albo wbrew temu co piszesz - nie masz w projekcie (nie w katalogu, tylko w projekcie w Code::Blocks - tam po lewej :P) pliku z implementacją, albo nie podajesz jakiejś biblioteki do opcji linkera. Jeżeli to drugie to zwykle wyszukiwanie w google szybko podpowiada co zrobić.

0

w pliku obsluga_plikow.cpp mam funckję void otworz(), która wyswietla mi okienko do otwarcia pliku...
w pliku obsluga_plikow.h mam deklaracje tej funkcji...
w pliku głownym programu w WM_COMMAND mam wywolanie : otworz();

Osobno pliki sie kompiluja, ale gdy chcę skompilować cały projekt wywala : Undefined reference to otworz().

Kiedys mialem banalny program ktory wyswietlal jedynie jakis napis. Podzielilem go na moduly, w Builderze wszystko działało, a po skopiowaniu tego kodu do nowego projektu w Code::Blocks'ie nie działał... Wywałał dokładnie takie sam błąd.

Wydaje mi się, że wszystko robię tak jak powinienem, bo wszystkie pliki są dodane do projektu.

0

Czy to u Ciebie wygląda mniej więcej tak jak na obrazku?user image
Czy budujesz przez "Build" albo "Rebuild"?

0

wciskam F9, czyli Build and run

Jesli chodzi o pliki dodane do projektu to wyglada to tak samo.

0

Możesz wkleić tutaj log budowania? (Build log). No i kod też by się przydał, bo może rzeczywiście nie napisałeś implementacji dla zadeklarowanej funkcji? Czy w obydwu plikach funkcja nazywa się tak samo i ma takie same typy argumentów?

1 użytkowników online, w tym zalogowanych: 0, gości: 1