Compilerfehler unter CodeBlocks
- Bebu
- Beiträge: 562
- Registriert: Mi Okt 21, 2009 6:19 pm
- Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!
Compilerfehler unter CodeBlocks
Hallo zusammen, ich stehe hier mal wieder vor einem Fehler, den ich nicht ganz verstehen kann. Ich habe zu meinem laufenden Projekt wieder zwei Quellcodedateien hinzugefügt. Diesmal ist es aber keine Klasse sondern eine Sammlung von Funktionen, die den eigentlichen Algorithmus bilden soll. In der Headerdatei sind bisher zwei Funktionen definiert. Diese beiden Funktionen arbeiten mit einigen anderen Klassen aus meinem Projekt, allerdings bekomme ich immer die Fehlermeldung, eines meiner Objekte wäre innerhalb des Scopes nicht deklariert. Sie stehen aber im Header. Wenn ich die Headerdatei weglasse und alles über main definiere klappt es, sobald ich die Headerdatei benutzte spinnt er rum. Es ist grade so, als ob er die eine Headerdatei nicht haben will.
Hat jemand eine Idee? Die betreffenden Dateien heißen list_generator.hpp und list_generator.cpp. Das komplette Packet ist als CodeBlocks Projekt im Dateianhang dabei.
Diese beiden Dateien befinden sich noch im Aufbau und die Funktion enthält den eigenlichen Algorithmus noch gar nicht, also nicht wundern...
Danke im voraus
Bebu
Hat jemand eine Idee? Die betreffenden Dateien heißen list_generator.hpp und list_generator.cpp. Das komplette Packet ist als CodeBlocks Projekt im Dateianhang dabei.
Diese beiden Dateien befinden sich noch im Aufbau und die Funktion enthält den eigenlichen Algorithmus noch gar nicht, also nicht wundern...
Danke im voraus
Bebu
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Compilerfehler unter CodeBlocks
Kann es sein, das du ein Objekt aus einer weitren Klasse verwendest, deren Headerdatei du nicht einbindest?
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Compilerfehler unter CodeBlocks
Ich habe Boost nicht installiert. Da Du die Fehlermeldung nicht explizit aufführst, kann ich auch nicht so reingucken.
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.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- Bebu
- Beiträge: 562
- Registriert: Mi Okt 21, 2009 6:19 pm
- Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!
Re: Compilerfehler unter CodeBlocks
Das ist ja genau das Problem. Er meckert, obwohl die Klasse in der Headerdatei meiner Funktionsammlung per Include eingebunden ist.cloidnerux hat geschrieben:Kann es sein, das du ein Objekt aus einer weitren Klasse verwendest, deren Headerdatei du nicht einbindest?
OK, hier die exakte Fehlermeldung:Xin hat geschrieben:Ich habe Boost nicht installiert. Da Du die Fehlermeldung nicht explizit aufführst, kann ich auch nicht so reingucken.
||=== Anlage, Debug ===|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp||In function ‘int generate_list(boost::gregorian::date, int, int, int)’:|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|31|error: ‘list’ was not declared in this scope|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|31|error: expected ‘;’ before ‘list_’|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|32|error: ‘inserts’ was not declared in this scope|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|32|error: expected ‘;’ before ‘row’|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|123|error: ‘row’ was not declared in this scope|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|129|error: ‘list_’ was not declared in this scope|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|132|error: ‘list_’ was not declared in this scope|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|208|warning: ‘boost::system::system_category’ defined but not used|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|209|warning: ‘boost::system::generic_category’ defined but not used|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|214|warning: ‘boost::system::posix_category’ defined but not used|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|215|warning: ‘boost::system::errno_ecat’ defined but not used|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|216|warning: ‘boost::system::native_ecat’ defined but not used|
||=== Erstellen beendet: 7 Fehler, 5 Warnungen===|
Allerdings sagt das auch nicht viel aus. Lasse ich die Headerdatei ganz weg, schreibe die Funktionsdefinitionen und die Includes in main, kompiliert es problemlos.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Compilerfehler unter CodeBlocks
Klingt für mich, als würdest Du eine Variable 'list' verwenden, deren Typ nicht bekannt ist und die deswegen nicht deklariert werden konnte.Bebu hat geschrieben:OK, hier die exakte Fehlermeldung:Xin hat geschrieben:Ich habe Boost nicht installiert. Da Du die Fehlermeldung nicht explizit aufführst, kann ich auch nicht so reingucken.
||=== Anlage, Debug ===|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp||In function ‘int generate_list(boost::gregorian::date, int, int, int)’:|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|31|error: ‘list’ was not declared in this scope|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|31|error: expected ‘;’ before ‘list_’|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|32|error: ‘inserts’ was not declared in this scope|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|32|error: expected ‘;’ before ‘row’|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|123|error: ‘row’ was not declared in this scope|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|129|error: ‘list_’ was not declared in this scope|
/home/bernhard/Programmieren/AnlageV2/Anlage/list_generator.cpp|132|error: ‘list_’ was not declared in this scope|
Klingt für mich, als wären hier Variablen überflüssig definiert.Bebu hat geschrieben:/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|208|warning: ‘boost::system::system_category’ defined but not used|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|209|warning: ‘boost::system::generic_category’ defined but not used|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|214|warning: ‘boost::system::posix_category’ defined but not used|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|215|warning: ‘boost::system::errno_ecat’ defined but not used|
/home/bernhard/Programmieren/BOOST_LIB/boost_1_41_0/boost/system/error_code.hpp|216|warning: ‘boost::system::native_ecat’ defined but not used|
||=== Erstellen beendet: 7 Fehler, 5 Warnungen===|
Moment... Funktionsdefinitionen in Includes?Bebu hat geschrieben:Allerdings sagt das auch nicht viel aus. Lasse ich die Headerdatei ganz weg, schreibe die Funktionsdefinitionen und die Includes in main, kompiliert es problemlos.
Funktionsdefinitionen haben in Includes nichts zu suchen (Du meinst Deklarationen?)
Ansonsten poste mal Deine Inkludedatei.
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.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- Bebu
- Beiträge: 562
- Registriert: Mi Okt 21, 2009 6:19 pm
- Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!
Re: Compilerfehler unter CodeBlocks
Die Warnungen kommen immer nur im Fall eines Kompilerfehlers, normalerweise treten die nicht auf. Ich vermute, es liegt daran, das die Boost Bestandteile erst nach dem Fehler benutzt werden und deswegen die Warnungen auftauchen. Darüber mache ich mir Sorgen, wenn sie im Release Kompilat wieder auftauchenXin hat geschrieben: Klingt für mich, als wären hier Variablen überflüssig definiert.

Ich glaube ich habe mich hier etwas missverständlich ausgedrückt. Aber wie du befiehlst o großer Meister:Xin hat geschrieben: Moment... Funktionsdefinitionen in Includes?
Funktionsdefinitionen haben in Includes nichts zu suchen (Du meinst Deklarationen?)
Ansonsten poste mal Deine Inkludedatei.
Headerdatei mit Funktionsdeklarationen(list_generator.hpp):
Code: Alles auswählen
#ifndef LIST_GENERATOR_HPP_INCLUDED
#define LIST_GENERATOR_HPP_INCLUDED
#include "list.hpp"
#include "sqlitewrapper.hpp"
#include "timer.hpp"
#include "person.hpp"
#include <boost/date_time/gregorian/gregorian.hpp>
int generate_list(boost::gregorian::date start_date,
int length,
int day1,
int day2);
void get_weekdays(boost::gregorian::day_iterator iter,
boost::gregorian::date &return_date,
int day);
#endif // LIST_GENERATOR_HPP_INCLUDED
Code: Alles auswählen
#include "list_generator.hpp"
int generate_list(boost::gregorian::date start_date, int length, int day1, int day2)
{
//full priority but not a jumper
std::vector<std::string> mixer;
std::vector<std::string> stage;
std::vector<std::string> door;
std::vector<std::string> micro;
//full priority but a jumper
std::vector<std::string> jumper_mixer;
std::vector<std::string> jumper_stage;
std::vector<std::string> jumper_door;
std::vector<std::string> jumper_micro;
//half priority but not a jumper
std::vector<std::string> low_prio_mixer;
std::vector<std::string> low_prio_stage;
std::vector<std::string> low_prio_door;
std::vector<std::string> low_prio_micro;
//waiting lists for half priortity persons
std::vector<std::string> waiting_mixer;
std::vector<std::string> waiting_stage;
std::vector<std::string> waiting_door;
std::vector<std::string> waiting_micro;
//used objects an iterators
list list_;
inserts row;
sqlite dbs("dbs.db");
sqlite::Result sql_returning;
sqlite::Row sql_row;
sqlite::Row_it iter_row;
//variables to work with
int mixer_,door_,micro_,stage_,priority_;
std::string name_, firstname_, complete_name;
sql_returning = dbs.select("persons","active=1");
//pushing everything in the correct container
for(sqlite::Result::const_iterator iter=sql_returning.begin();
iter!=sql_returning.end();iter++)
{
sql_row = *iter;
iter_row = sql_row.find("name");
name_ = dbs.return_values<std::string>(iter_row->second);
iter_row = sql_row.find("firstname");
firstname_ = dbs.return_values<std::string>(iter_row->second);
complete_name = name_ + " " + firstname_;
iter_row = sql_row.find("mixer");
mixer_ = dbs.return_values<int>(iter_row->second);
iter_row = sql_row.find("door");
door_ = dbs.return_values<int>(iter_row->second);
iter_row = sql_row.find("stage");
stage_ = dbs.return_values<int>(iter_row->second);
iter_row = sql_row.find("micro");
micro_ = dbs.return_values<int>(iter_row->second);
iter_row = sql_row.find("priority");
priority_ = dbs.return_values<int>(iter_row->second);
if (mixer_ == TRUE && priority_ == FULL)
mixer.push_back(complete_name);
if (door_ == TRUE && priority_ == FULL)
door.push_back(complete_name);
if (stage_ == TRUE && priority_ == FULL)
stage.push_back(complete_name);
if (micro_ == TRUE && priority_ == FULL)
micro.push_back(complete_name);
if (mixer_ == JUMPER && priority_ == FULL)
jumper_mixer.push_back(complete_name);
if (door_ == JUMPER && priority_ == FULL)
jumper_door .push_back(complete_name);
if (stage_ == JUMPER && priority_ == FULL)
jumper_stage.push_back(complete_name);
if (micro_ == JUMPER && priority_ == FULL)
jumper_micro.push_back(complete_name);
if (mixer_ == TRUE && priority_ == HALF)
low_prio_mixer.push_back(complete_name);
if (door_ == TRUE && priority_ == HALF)
low_prio_door.push_back(complete_name);
if (stage_ == TRUE && priority_ == HALF)
low_prio_stage.push_back(complete_name);
if (micro_ == TRUE && priority_ == HALF)
low_prio_micro.push_back(complete_name);
}
boost::gregorian::date day_1, day_2;
boost::gregorian::day_iterator start_date_it(start_date);
boost::gregorian::week_iterator day_1_it (day_1);
boost::gregorian::week_iterator day_2_it (day_2);
get_weekdays(start_date_it,day_1,day1);
get_weekdays(start_date_it,day_2,day2);
for (int i = 1; i <= length; i++)
{
std::cout << start_date.day_of_week() << start_date << std::endl;
std::cout << day_1.day_of_week() << day_1 << std::endl;
std::cout << day_2.day_of_week() << day_2 << std::endl;
//row.date = ;
row.micro_middle = "mitte";
row.micro_right = "rechts";
row.mixer = "anlage";
row.stage = "buehne";
row.door = "tuer";
list_.add_row(row);
}
list_.print_list();
//pushing everything in list object
return 0;
}
void get_weekdays(boost::gregorian::day_iterator iter,
boost::gregorian::date &return_date,
int day)
{
switch (day)
{
case MONDAY : return_date = boost::date_time::next_weekday(*iter,
boost::gregorian::greg_weekday(
boost::date_time::Monday));
break;
case TUESDAY : return_date = boost::date_time::next_weekday(*iter,
boost::gregorian::greg_weekday(
boost::date_time::Tuesday));
break;
case WEDNESDAY : return_date = boost::date_time::next_weekday(*iter,
boost::gregorian::greg_weekday(
boost::date_time::Wednesday));
break;
case THURSDAY : return_date = boost::date_time::next_weekday(*iter,
boost::gregorian::greg_weekday(
boost::date_time::Thursday));
break;
case FRIDAY : return_date = boost::date_time::next_weekday(*iter,
boost::gregorian::greg_weekday(
boost::date_time::Friday));
break;
case SATURDAY : return_date = boost::date_time::next_weekday(*iter,
boost::gregorian::greg_weekday(
boost::date_time::Saturday));
break;
case SUNDAY : return_date = boost::date_time::next_weekday(*iter,
boost::gregorian::greg_weekday(
boost::date_time::Sunday));
break;
default : throw std::out_of_range("Not a week day");
}
}
Code: Alles auswählen
#ifndef LIST_GENERATOR_HPP_INCLUDED
#define LIST_GENERATOR_HPP_INCLUDED
#include <string>
#include <stdexcept>
#include <vector>
#include <boost/date_time/gregorian/gregorian.hpp>
#include "logfile.hpp"
struct inserts
{
std::string date;
std::string mixer;
std::string stage;
std::string micro_right;
std::string micro_middle;
std::string door;
};
class list
{
public:
list() : log("log/list.txt",1,MB) {}
int add_row(const inserts &value); //tested
int print_list(); //temporary until wx Printing is runing //tested
private:
std::vector<inserts> _list_;
logfile log;
};
#endif // LIST_GENERATOR_HPP_INCLUDED
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Compilerfehler unter CodeBlocks
Code: Alles auswählen
#ifndef LIST_GENERATOR_HPP_INCLUDED
#define LIST_GENERATOR_HPP_INCLUDED
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Bebu
- Beiträge: 562
- Registriert: Mi Okt 21, 2009 6:19 pm
- Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!
Re: Compilerfehler unter CodeBlocks
Ich Dussel habe grade den Fehler gefunden!
Here it comes: list.hpp und list_generator.hpp hatten die selben Präprozessor Anweisungen, um ein doppeltes Einkopieren des Headers zu vermeiden. Ich hatte eine der Dateien in der Vergangenheit umbenannt und den Schalternamen nicht mit angepasst.
Asche auf mein Haupt, immer diese dummen Kleinigkeiten.
Danke für eure Hilfe
Edit: cloidnerux du hast recht, als ich den Beitrag grade nochmal durchgesehen habe, ist mir das selbe aufgefallen. Ja das sind die Fallen, die in IDEs stecken
Here it comes: list.hpp und list_generator.hpp hatten die selben Präprozessor Anweisungen, um ein doppeltes Einkopieren des Headers zu vermeiden. Ich hatte eine der Dateien in der Vergangenheit umbenannt und den Schalternamen nicht mit angepasst.
Asche auf mein Haupt, immer diese dummen Kleinigkeiten.
Danke für eure Hilfe
Edit: cloidnerux du hast recht, als ich den Beitrag grade nochmal durchgesehen habe, ist mir das selbe aufgefallen. Ja das sind die Fallen, die in IDEs stecken

Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Compilerfehler unter CodeBlocks
Herzlich willkommen im Club.Bebu hat geschrieben:Ich Dussel habe grade den Fehler gefunden!
Here it comes: list.hpp und list_generator.hpp hatten die selben Präprozessor Anweisungen, um ein doppeltes Einkopieren des Headers zu vermeiden.

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.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.