Witam
Pisze program z dwoma plikami źródłowymi i jednym nagłówkowym i podczas kompilacji dostaje poniższy błąd:
1>zad_9_1_golf_m.obj : error LNK2019: unresolved external symbol "void __cdecl setgolf(struct golf_ns::golf &,char const *,int)" (?setgolf@@YAXAAUgolf@golf_ns@@PBDH@Z) referenced in function _main
1>C:\Users...\documents\visual studio 2015\Projects\ConsoleApplication190\Debug\ConsoleApplication190.exe : fatal error LNK1120: 1 unresolved externals
Nie bardzo rozumiem jaki symbol zewnętrzny nie jest powiązany
główny plik źródłowy:
// zad_9_1_golf_m.cpp -- 190 - zadanie 1 z rodzialu 9
// kompilowac z zad_9_1_golf.cpp
#include <iostream>
#include "zad_9_1_golf.h"
using namespace golf_ns;
extern const int Len;
golf jim;
golf ann;
golf tom;
int main()
{
cout << "Program do rejestrowania ilosc punktow golfistow." << endl;
cout << "Liga Kobiet." << endl;
cout << "Podaj imie i nazwisko gracza: ";
char temp[Len];
int tempi;
cin.get(temp, Len);
if (sizeof(temp) == 0)
cout << "Brak nazwiska zawodniczki.\nKoniec wprwadzania danych.";
else
{
cout << "Podaj ilosc punktow fandicap: ";
cin >> tempi;
setgolf(ann, temp, tempi);
}
for (int i = 0; i < ArSize; i++)
{
showgolf(ann);
}
cout << "Liga mezczyzn." << endl;
setgolf(tom);
int hc;
cout << "Podaj ilosc pukntow Jimiego:";
cin >> hc;
handicap(jim, hc);
showgolf(tom);
system("pause");
return 0;
}
2 plik źródłowy:
// zad_9_1_golf.cpp -- 190 - zadanie 1 z rodzialu 9
// kompilowac z zad_9_1_golf_m.cpp
#include <iostream>
#include "zad_9_1_golf.h"
using namespace golf_ns;
extern const int Len;
//extern golf ranking[ArSize];
extern golf jim;
extern golf ann;
extern golf tom;
void setgolf(golf & g, char * name, int hc)
{
//golf temp;
//temp = g;
for (int i = 0; i < sizeof(name); i++)
{
g.fullname[i] = name[i];
}
//g.fullname = name;
g.handicap = hc;
std::cout << g.handicap;
}
void setgolf(golf & g)
{
cout << "podaj imie i nazwisko zawodnika: ";
cin.get(g.fullname, Len);
if (sizeof(g.fullname) == 0)
{
cout << " 0 - nie udana proba wprowadzenia danych";
cout << "Podaj ilosc punktow handicap: ";
cin >> g.handicap;
}
else
cout << " 1 - Nazwisko przyjete.";
}
void handicap(golf & g, int hc)
{
g.handicap = hc;
}
void showgolf(const golf & g)
{
cout << "Nazwisko gracza: " << g.fullname << endl;
cout << "Ilosc punktow handicap: " << g.handicap << endl;
}
plik nagłówkowy:
// zad_9_1_golf.hpp -- 190 - zadanie 1 z rodzialu 9
#ifndef ZAD_9_1_GOLF_HPP_INCLUDED
#define ZAD_9_1_GOLF_HPP_INCLUDED
const int Len = 40;
namespace golf_ns
{
const int ArSize = 5;
using std::cout;
using std::endl;
using std::cin;
struct golf
{
char fullname[Len];
int handicap;
};
}
using namespace golf_ns;
void setgolf(golf & g, const char * name, int hc);
void setgolf(golf & g);
void handicap(golf & g, int hc);
void showgolf(const golf & g);
#endif ZAD_9_1_GOLF_HPP_INCLUDED