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

Attachment: signature.asc
Description: PGP signature

Antwort per Email an