Hallo,
On Wed, May 04, 2022 at 10:59:16PM +0200, Sebastian Reinhardt wrote:
Danke für den Tipp und die ganzen Hinweise. Ich habe mir nun eine Headerdatei mit der Deklaration erstellt und diese in die Datei mit den eigentlichen Leseroutinen eingefügt. Auch in der Datei mit dem Aufruf der Funktion habe ich die Headerdatei eingefügt. Nun läuft zwar der Compiler durch, aber der Linker wirft einen Fehler:
make g++ -g src/zero_controller_SNR.o src/lib/i2c_lcd/lcdDriver.o src/lib/i2c_lcd/i2cControl.o src/lib/display.o src/lib/sensor.o src/lib/read_csv.o src/lib/init_hw.o -o zero_controller_SNR -lpthread -lpigpio -lrt /usr/bin/ld: src/lib/init_hw.o: in function `ZEROHW::init_hw(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<cha r> > > > const&)': init_hw.cpp:(.text+0x60): undefined reference to `READCSV::read_config_files(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<csv_values, std::allocator<csv_values> >&)' collect2: error: ld returned 1 exit status make: *** [Makefile:20: all] Fehler 1
Was ich nicht verstehe ist, warum die Funktion undefiniert ist, wenn ich in der "init_hw.cpp" über die Header-Datei "read_config_files.hpp" diese Funktion und auch die Struktur ja eigentlich definiert haben sollte und der Compiler diese auch kennt/ findet......?
Der Compiler hat kein Problem. Dh. Header File etc. is ok. Dort hat der Linker nen Problem. Dh. einer der .o Files die Du in einem Aufruf übergibst referenziert die Funktion, aber der .o File in dem der Code dafür ist steht nicht mit auf der Commandline (oder das was in dem .o File ist entspricht nicht dem was im Header declariert wurde)
Grüsse Andreas