Forum: PC-Programmierung SP-Flash-Tool Compilieren mit QtCreator - Problem


von Markus W. (dl8mby)



Lesenswert?

Hallo NG,

beim Versuch das SP Flash Tool v5.1720 for MTK von GitHub
unter Linux zu Compilieren habe ich beim Linken ein Problem.

Source code SP Flash Tool v5.1720 for MTK - GitHub
https://github.com/eret1k/SP-Flash-Tool-src

>gcc --version
gcc (SUSE Linux) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.

Qt Creator 4.3.0
Based on Qt 5.6.2 (GCC 6.2.1 20160826 [gcc-6-branch revision 239773], 64 
bit)

Im Projekt ist Qt 4.8.6 (/usr/bin/qmake) eingestellt.

08:24:22: Starte "/usr/bin/make" -j10

Siehe Compileroutput im Text-Anhang.

Da ich so Meldungen, wie

libflashtool.so: undefined reference to 
`boost::gregorian::greg_month::as_short_string() const'

oder

libflashtoolEx.so: undefined reference to 
`boost::thread::start_thread_noexcept()'

bekomme, dachte ich, das ligt an meiner "boost-Lib" installation.
Habe Version 1.54, 1.58 und 1.61 auf dem System installiert, brachte
aber keine Abhilfe.

Es gibt da im Lib-Verzeichnis des Git-Clones vom August 2017
Libs wie libflashtoolEx.so, libflashtool.so und libsla_challenge,
die anscheinend nur als Binaries vorliegen.

Diese habe ich mit ldd und objdump untersucht, habe mir aber
trotzdem keinen Reim drauf machen können.

Siehe zweiten Anhang.

Vielleicht fällt Euch auf, woran das Compilieren scheitert.
Ich weiß schon das Problem sitzt meist vor dem Bildschirm ;-)

Ich wollte mit dem neuen Bild eventuelle Probleme beim
jetzigen SP-Flash-Tool, welches ich nur als Binary besitze,
beheben, um bei meinem eigentlichen Problem, siehe
Beitrag "Acer Liquid E700 (3x SIM-Slot) - RS232 Console?"
weiter zu kommen.


Danke schon mal vorab für nützliche Hinweise.

Nachtrag:
In wie fern kann ich aus den u.g. Zeilen was herauslesen?

>objdump -x libflashtoolEx.so | grep 'flashtool_waitfor_com'
000000000025c6b0 l     O .rodata  0000000000000016 
ZZ21flashtool_waitfor_comE12__FUNCTION_
00000000001b803f l     F .text  000000000000039d              .hidden 
flashtool_waitfor_com

Nachtrag2:

Kann jemand sagen, ob die Exportanweisung für Linux so ok ist?

#elif defined(_LINUX)
   #if defined(FLASHTOOLLIBEX_EXPORTS)
       #define LIBEX_EXPORT _attribute_ ((visibility("default")))
   #else
       #define LIBEX_EXPORT
   #endif

   #define __stdcall
#else

...

LIBEX_EXPORT status_t LIB_API flashtool_waitfor_com(const char8** 
filter, uint32 count, /*OUT*/char8* port_name);


Scheint sehr speziell zu sein, wenn keiner eine Antwort darauf hat.
Ich hoffe trotzdem, dass der eine oder andere Experte hier mitlesen
tut und eventuell doch eine Antwort parat hat.

Markus

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.