Pokaż wyniki 1 do 2 z 2

Temat: Linkowanie

  1. #1

    Domyślnie Linkowanie

    Witam,
    np.:
    PLIK 1:
    Kod:
    **********************************
    #include<conio.h>
    #include<iostream>
    void funkcja();
    using namespace std;
    int main()
    {
                cout<<"Funkcja main()"<<endl;
                getch();
                funkcja();
               getch();
    }
    *********************************************************
    Błąd:
    C:\DOCUME~1\Kowalski\USTAWI~1\Temp\ccMhaaaa.o(.tex t+0x154) In function `main':
    [Linker error] undefined reference to `funkcja()'
    C:\DOCUME~1\Kowalski\USTAWI~1\Temp\ccMhaaaa.o(.tex t+0x154) ld returned 1 exit status

    ********************************************
    Plik 2:
    Kod:
    *******************************************
    #include<iostream>
    #include<conio.h>
    using namespace std;
    void funkcja()
    {
                 cout<<"Funkcja funkcja";
               
    }
    ***************************************
    Błąd:
    [Linker error] undefined reference to `WinMain@16'
    ld returned 1 exit status
    *****************************************
    -Oczywiście zaczne od tego że mi to nie działa (dlaczego?)
    -Wyskakuje błąd "linker" (Dev c++)
    Moje pytania:
    -(podstawowe) czy te dwa pliki są dobrze napisane (chodzi mi o samą idee dzielenia pliku)
    -Czy to ma wyglądać tak? - kompiluje dwa pliki, w wyniku czego mama dwa plike exe. Teraz moge (chyba?) odpalić każdy z osobna?, ale jeżeli odpale main() to mi wyświetli tylko cout z main? dopiero po zlinkowaniu będzie mi wyświetlać funcje "funkcje" (tak?) , czy po zlinkowanu te dwa pliki zejdą się w jeden? Jak to zrobić w Dev C++
    Pozdrawiam
    Ostatnio edytowane przez Mad_Dud : 01-06-2009 - 17:51 Powód: Stosuj tagi

  2. #2

    Domyślnie

    Nie kompiluje się dlatego, że program 1 nie ma zaimplementowanej funkcji funkcja(), a jest ona zadeklarowana i używana przez program. Program drugi nie posiada funkcji main(), która jest konieczna.
    To ma wyglądać tak:
    plik funkcja.h:
    Kod:
    #include <iostream>
    void funkcja();
    plik funkcja.cpp
    Kod:
    #include "funkcja.h"
    void funkcja()
    {
     //itd;
    }
    plik main.cpp:
    Kod:
    #include <iostream>
    #include "funkcja.h"
    int  main()
    {
     //asd
    }
    I z tego wszystkiego będziesz miał jeden plik exe.
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj