Witam wszystkich,
zacząłem się bawić tzw kompilacją rozłączną w c++. Jak do tond nie była mi ona potrzebna. Sięgnąłem do poleconej mi książki - szkoła programowania wyd. V - i po zapoznaniu się z tematyką przepisałem programik. Niestety nie widzę błędu. Borland 6 zgłasza mi następujące błędy:
zaś Code::Block takie
IX\I program\file1.o:file1.cpp:(.text+0x19e)||undefined reference to `rect_to_polar(rect)'|
IX\I program\file1.o:file1.cpp:(.text+0x1d9)||undefined reference to `show_polar(polar)'|
Zawartość plików prezentuje się następująco: Plik coordin.h
//coordin.h - prototypy funkcji i deklaracje sruktur
//deklaracja struktur:
#ifndef COORDIN_H_
#define COORDIN_H_
struct polar
{
double distance; //odległosc od początku układu współrzędnych
double angle; //odchylenie od osi
};
struct rect
{
double x; //odległosc od początku układu współrzędnych (w poziomie)
double y; //odległosc od początku układu współrzędnych (w pionie)
};
//prototypy:
polar rect_to_polar(rect xypos);
void show_polar(polar dapos);
#endif
Plik file1.cpp
#include
#include "coordin.h"
using namespace std;
int main()
{
rect rplace;
polar pplace;
cout << "Podaj wartosci x i y: ";
while(cin >> rplace.x >> rplace.y)
{
pplace = rect_to_polar(rplace);
show_polar(pplace);
cout << "Nastepne wspolrzedne (q konczy program): ";
}
cout << "Juz!\n";
return 0;
}
Plik file2.cpp
#include
#include
#include "coordin.h"
//konwersja współrzędnych prostokątnych na współrzędne biegunowe
polar rect_to_polar(rect xypos)
{
polar answer;
answer.distance = sqrt(xypos.x * xypos.x + xypos.y * xypos.y);
answer.angle = atan2(xypos.y, xypos.x);
return answer; //zwraca strukturę współrzędnych biegunwych
}
//wyswietlanie współrzędnych biegunowych z konwersją kąta na stopnie
void show_polar(polar dapos)
{
using namespace std;
const double Rad_to_deg = 57.29577951;
cout << "Odleglosc = " << dapos.distance;
cout << ", odchylenie = " << dapos.angle * Rad_to_deg;
cout << " stopni.\n";
}
Gdzie jest błąd? Przyznam szczerze że nie widzę go. Z góry dziękuję za pomoc.