program wieloplikowy - error LNK2019 + fatal error LNK1120:

Odpowiedz Nowy wątek
2017-05-01 02:56

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

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)" ([email protected]@[email protected][email protected]@[email protected]) 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

Pozostało 580 znaków

2017-05-01 10:39

Rejestracja: 15 lat temu

Ostatnio: 9 godzin temu

1

Czy plik zad_9_1_golf.cpp dodałeś do projektu (nie chodzi o skopiowanie do katalogu)?

całość pisana jako jeden projekt w VS 2015 - Azreal 2017-05-03 02:53

Pozostało 580 znaków

2017-05-01 10:50

Rejestracja: 3 lata temu

Ostatnio: 1 rok temu

Lokalizacja: Lublin

Nazwałeś plik nagłówkowy: zad_9_1_golf.hpp a includujesz: zad_9_1_golf.h.
Ale to problem był tu:
Nagłówek funkcji brzmi: void setgolf(golf & g, const char * name, int hc),
a w definicji funkcji już: void setgolf(golf & g, char * name, int hc).


"Jesteśmy świadomymi istotami, a życie jest sposobem w jaki wszechświat poznaje sam siebie." prof. Brian Cox
Dzięki już działa - Azreal 2017-05-03 02:53

Pozostało 580 znaków

Odpowiedz

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