Multiple definitions

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Multiple definitions

Beitrag von Dirty Oerti » So Jan 10, 2010 9:00 pm

Mit Codeblocks?
Naja, wie hast du denn die Dateien erstellt?
Links (glaube ich mich zu erinnern) müsstest du ja eine Liste (mit Ordnern) aller verwendeten Dateien finden.
Wie sieht die bei dir aus?
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Multiple definitions

Beitrag von naums » So Jan 10, 2010 9:08 pm

Code: Alles auswählen

Workspace
--->DatabaseMaker
--->--->Sources
--->--->--->lin
--->--->--->--->console.cpp
--->--->--->main.cpp



.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Multiple definitions

Beitrag von naums » So Jan 10, 2010 9:19 pm

Edit by Xin: Bild von Quelltext und nicht lesbaren Fehlermeldungen überflüssig - in Zukunft als Text einfügen!
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Multiple definitions

Beitrag von Dirty Oerti » So Jan 10, 2010 10:38 pm

Dann sollte eigentlich von sich aus die main.cpp und die console.cpp kompiliert und gelinkt werden.
In der main.cpp includierst du nur die console.h, oder?
Funktioniert es dann so?
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Multiple definitions

Beitrag von Xin » So Jan 10, 2010 10:43 pm

Wie sieht die console.h jetzt aus und wie sind die aktuellen Fehlermeldungen? (als Text!)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Multiple definitions

Beitrag von naums » Mo Jan 11, 2010 3:18 pm

die Main.cpp (auszug):

Code: Alles auswählen

#include <iostream>                                                            //Zur ein und Ausgabe von Zeichen
/**#if defined(_Win32)
#include "win/console.cpp"
                                                              //Zum Stylen der Konsole
#include <conio.h>                                                              //Für getch
#include <Windows.h>                                                            //Zum Schreiben von INIs
using namespace ic;                                                             //Einbinden der Namespaces
using namespace ic::shorties;

#elif defined (linux) || defined (__linux)*/
#include "lin/console.h"
//#endif
die console.cpp:

Code: Alles auswählen

#include "console.h"
#include <stdlib.h>
#include <stdio.h>
#include <string>

void gotoxy(int x, int y)
{
    printf("\033[%d;%dG", y, x);
}

void home(void)
{
    int x[2] = {0,0};
    printf("\033[%d;%dG",x[1],x[2]);
}

void writehead(std::string header, std::string filepath)
{
    FILE *ini;
    ini=fopen(filepath.c_str(),"t");
    fprintf(ini,header.c_str());
    fclose(ini);
}
console.h

Code: Alles auswählen

#ifndef CONSOLE_H
#define CONSOLE_H
#include <string>

namespace linux_console
{
    void gotoxy (int x, int y);
    void home (void);
    void writehead (std::string header, std::string filepath);
};
#endif // CONSOLE_H
Fehlermeldungen siehe unten:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Multiple definitions

Beitrag von cloidnerux » Mo Jan 11, 2010 3:54 pm

So, du hast 1 fehler gemacht:
Du Hast die Funktionsköpfe in ein namespace geschoben, aber nicht die Funktionsrümpfe. Der Compiler Findet im Namespace linux_console keine entsprechenden Funktionen und meldet dir einen Fehler.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Multiple definitions

Beitrag von naums » Mo Jan 11, 2010 8:57 pm

ich änder das dann gleich.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Multiple definitions

Beitrag von naums » Do Jan 14, 2010 8:52 pm

Invalid Segmentation. gibt die Konsole aus, nicht der Compiler!
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Multiple definitions

Beitrag von cloidnerux » Do Jan 14, 2010 9:04 pm

Unter Linux oder unter Windows?
Mit Welchen Befehlen?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten