Forum: PC-Programmierung Linkerfehler beim Compilieren von SPFT


von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

kann mir jemand einen Hinweis geben, wodurch der
Linker-Fehler verursacht wird, der im Anhang gelistet ist.

Irgendwie gelingt es mir seit Tagen nicht das SPFT Master
Package aus Github für Linux zu kompilieren.

Danke für die Mühe der Durchsicht im Voraus.

Markus

von guest (Gast)


Lesenswert?

Meine Glaskugel sagt: Du hast Dich mit der Groß-/Kleinschreibung vertan 
oder eine Lib vergessen zu bauen/linken.

Du hättest wenigstens mal einen Link zu dem Projekt angeben können.

"./Lib/libflashtoolEx.so"??? Wo kommt die denn her? Sieht aus als 
hättest Du da wild irgendwelche Dateien kopiert. Und entgegen Deinem 
Kommentar ist die auf GitHub auch nicht zu finden 
(https://github.com/eret1k/SP-Flash-Tool-src/tree/master/Lib).

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Gast,

Ich habe das Packet SP-Flash-Tool-src-master von dem von Dir
genannten Link aus Github geholt.
Zumindest erinnere ich mich, dass der Account mit "e" angefangen
hat. Ist schon zwei Wochen her.

122274777  1. Feb 14:05 SP-Flash-Tool-src-master-20170818.zip

Die letzte Modifikation im Repository war am 18-Aug-2017, weshalb
ich den Filenamen auch so gwählt habe.

Das mit dem "Lib zu lib" LD-Switch habe ich schon bemerkt, leider
hat das Erzeugen eines Links mit dem Namen lib, der auf ./Lib zeigt
keine Abhilfe gebracht.

Die verschiedenen lib*.so Namen im ./Lib Verzeichnis kommen daher,
da sich der make-Forgang darüber beschwert hat, das bestimmte Libs
mit bestimmten Namen, nicht vorhanden sind. Mal wird das "T" wie
FlashToollib mal das "t" wie Flashtoollib verlangt.
Ich hoffte das zu lösen, indem ich mehrere Kopien der selben Lib
im Libverzeichnis "./Lib" vorhalte.

Ich konnte das so weit treiben, dass jede *.so Lib beim Abfragen
mit ldd keine fehlenden Abhängigkeiten mehr zeigte.

Trotzdem klappt der Buildvorgang nicht so wie er soll.

Meiner Meinung nach hängt das mit den export Deklarationen der
gabauten Libs, die unter Linux wohl noch nicht ganz stimmen.

Aber das ist nur eine Vermutung, da ich ein Linker-Experte bin.

Wie Du aber meinem vorhergehendem Anhang entnehmen konntest, habe
ich schon versucht nach bestem Wissen dem Problem auf den Grund zu
gehen. Ist halt eine mühselige Sache und ich habe den Eindruck,
dass das SPFTool mehr Windows Anhänger hat und deswegen dort besser
gepflegt wird.

Ich habe mal meinen Inhalt des zip-Archivs angehängt, aus dem ich
mein Binary zu erzeugen versuche.

Weder plain mit qmake und make all noch mit qtcreator hatte ich
dabei Erfolg. Auch bin ich durch die vielen Verweise auf die boost
Library etwas verunsichert. Habe diese in version 1.54 und 1.58
auf dem System installiert unter /usr/lib64 die so's und unter
/usr/ibclude/boost die .h files. Bei OpenSuse einfach mit zypper
zu bewerkstelligen.

Ich sehe aber gerade, dass einige Pakete noch nicht installiert sind.
Ob dass das Problem verursacht? Werde die anderen Pakete noch nach-
installieren uns schauen, ob sich was bei make ändert.

Danke derweil für Deine Antwort.

Markus

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Nachtrag zu oben.

Habe jetzt boost 1.61 installiert und einen
jungfräulichen Buildvorgang auf das entpackte
SPFT für Linux in Version 5.1720.00 gestartet.

Anbei meine Logs für den boost 1.61 install
und dem qmake; make all; Lauf.

Davor habe ich noch den Link lib auf ./Lib
erzeugt und LD_LIBRARY_PATH env-Var mit ./Lib
gesetzt.

Fehler bleibt der gleiche.

Eine Idee hierzu, woran es liegt?

Markus

von Markus W. (dl8mby)


Lesenswert?

Hallo Forum,
und vor allem Linker Experten!

Kann Mir das jemand von Euch bitte erklären


LD Error in:
DADownloadAll.o: In Funktion »APCore::ICommand::connect(long*)«:
DADownloadAll.cpp:(.text._ZN6APCore8ICommand7connectEPl[_ZN6APCore8IComm 
and7connectEPl]+0x99):
Warnung: undefinierter Verweis auf »flashtool_waitfor_com«


Symbol im Obj-File:
===================
nm -g -C ./DADownloadAll.o | grep flashtool_waitfor_com
                 U flashtool_waitfor_com

Laut Man-Pahe zu nm:
====================
"U" The symbol is undefined.


Symbol in Lib:
===============
>nm -C ./libFlashToolEx.so | grep -i flashtool_waitfor_com
00000000001b803f t flashtool_waitfor_com
000000000025c6b0 r flashtool_waitfor_com::__FUNCTION__

beim g++ Aufruf wird
-L./lib und -lFlashToolEx
angegeben und trotzdem kommt die o.g. Fehlermeldung.

g++ -Wl,-rpath,. -Wl,-rpath,lib -Wl,-rpath,Lib -Wl,-rpath,qt 
-Wl,-rpath,boost -Wl,-rpath,/usr/lib64 -Wl,-rpath,/lib64 
-Wl,-rpath,/usr/lib64/boost 
-Wl,-L/home/markus/Elektrotechnik/ARM/MT6582/SP-Flash-Tool-src/SP-Flash- 
Tool-src-master/Lib 
-Wl,-L/home/markus/Elektrotechnik/ARM/MT6582/SP-Flash-Tool-src/SP-Flash- 
Tool-src-master/Lib/QtLinux  -Wl,-lflashtool -Wl,-O1 -o flash_tool 
Connection.o Log.o AppCore.o DAHandle.o DLHandle.o main.o XMLNodeImpl.o 
XMLDocument.o tinyxmlparser.o tinyxmlerror.o tinyxml.o tinystr.o 
XMLNode.o Logger.o XMLDocumentImpl.o Utils.o USBCOMFinderWrapper.o 
ResourceManager.o CoreHandle.o DADownloadAll.o FormatCommand.o 
BromException.o AppException.o ErrorLookup.o BaseException.o 
MainWindow.o TabWidgetBase.o DownloadWidget.o ReadBackWidget.o 
MemoryTestWidget.o DeviceTestWidget.o ParameterWidget.o AboutDialog.o 
OptionDialog.o MainController.o ProcessingAnimation.o ProcessingDialog.o 
AsyncResourceLoader.o BootRomArg.o MainWindowCallback.o 
DADownloadAllSetting.o BackgroundWorker.o UserStopException.o 
ConnSetting.o FormatSetting.o Config.o GeneralSetting.o 
ConsoleModeEntry.o ConnBromUARTSetting.o ConnBromUSBSetting.o 
FlashToolApp.o BromMemtestArg.o MemoryTestSetting.o MemoryTestCommand.o 
DeviceTestSetting.o DeviceTestCommand.o BromReadbackArg.o 
ReadbackSetting.o ReadbackCommand.o RBHandle.o ReadBackAddressDialog.o 
USBSetting.o SchemaValidator.o BromDownloadArg.o BromFormatArg.o 
PlatformRule.o StorageRule.o FileUtils.o PlatformSetting.o 
EMMCFormatArg.o NANDForamtArg.o AutoFormatArg.o ReadbackRule.o 
OTPCommand.o FirmwareUpgradeCommand.o FirmwareUpgradeSetting.o 
BromOTPArg.o WriteMemoryCommand.o WriteMemorySetting.o OTPSetting.o 
OTPWriteDialog.o OTPReadDialog.o version.o WriteMemoryArg.o OkDialog.o 
FormatWidget.o WriteMemoryWidget.o UpdateDialog.o CheckUpdateDialog.o 
AsyncUpdater.o BromChksumArg.o ChksumSetting.o ChksumRule.o romfactory.o 
dlproxy.o defaultrom.o concreterom.o dlproxyimpl.o ErrString.o 
storhelper.o constString.o PlatformObj.o ScretHandle.o AuthHandle.o 
CertDLCommand.o CertDLSetting.o WelcomeWidget.o Assistant.o 
CheckHeader.o NvramVerify.o restoreworker.o CommandLineArguments.o 
WatchDogCommand.o WatchDogSetting.o IniItem.o SizeCalcHelper.o 
ConnImpl.o ConnMedia.o ConnArgBox.o EfuseCommand.o EfuseSetting.o 
connob.o BromAdapterWidget.o ComboFormatSetting.o ComboFormatCommand.o 
BromAdapterCommand.o BromAdapterArg.o BromAdapterSetting.o 
RomInfoFactory.o SDMMCWidget.o NandWidgetd.o EMMCWidget.o 
ChipInfoWidget.o NorFlashWidget.o SDMMCAutoFormatArg.o ScatterObserver.o 
DLOnlySetting.o DLOnlyCommand.o SecDLSetting.o SecDLCommand.o 
sendreport.o SCIDownloadWidget.o CloneDownloadWidget.o EncryDialog.o 
DLDelegate.o SCIRBCommand.o SCIRBSetting.o SCIRestoreSetting.o 
SCIRestoreCommand.o CloneInfo.o SCIDownloadSetting.o 
SCIDownloadCommand.o DLPlugFmtAllSetting.o DLPlugFmtAllCommand.o 
TempPlcCtrl.o CommandSetting.o GeneralArg.o GeneralCommand.o 
MacroCommand.o UFSFormatArg.o UfsWidget.o NORFormatArg.o json.o 
DLWithoutScatterSetting.o DLWithoutScatterCommand.o 
ReadbackWithoutScatterSetting.o ReadbackWithoutScatterCommand.o 
SetBootModeSetting.o SetBootModeCommand.o CheckRPMBSetting.o 
CheckRPMBCommand.o ReadbackSettingAssist.o RuntimeMemory.o DeviceScan.o 
DeviceConn.o moc_MainWindow.o moc_TabWidgetBase.o moc_DownloadWidget.o 
moc_ReadBackWidget.o moc_MemoryTestWidget.o moc_DeviceTestWidget.o 
moc_ParameterWidget.o moc_AboutDialog.o moc_OptionDialog.o 
moc_MainController.o moc_ProcessingAnimation.o moc_ProcessingDialog.o 
moc_AsyncResourceLoader.o moc_MainWindowCallback.o 
moc_BackgroundWorker.o moc_FlashToolApp.o moc_ReadBackAddressDialog.o 
moc_OTPReadDialog.o moc_OTPWriteDialog.o moc_OkDialog.o 
moc_FormatWidget.o moc_WriteMemoryWidget.o moc_UpdateDialog.o 
moc_CheckUpdateDialog.o moc_AsyncUpdater.o moc_UfsWidget.o 
moc_PlatformObj.o moc_Assistant.o moc_CheckHeader.o 
moc_BromAdapterWidget.o moc_SDMMCWidget.o moc_NandWidget.o 
moc_EMMCWidget.o moc_ChipInfoWidget.o moc_NorFlashWidget.o 
moc_sendreport.o moc_SCIDownloadWidget.o moc_CloneDownloadWidget.o 
moc_EncryDialog.o moc_DLDelegate.o qrc_icon.o qrc_translations.o 
qrc_html.o  -L./lib -L./lib/QtWin -lQtWebKit -lQtXmlPatterns 
-L/usr/lib64 -lQtGui -L/usr/X11R6/lib -lQtNetwork -lQtCore -lpthread 
-lFlashToolEx -lFlashToollibEx -lflashtool -lsla_challenge

DADownloadAll.o: In Funktion »APCore::ICommand::connect(long*)«:
DADownloadAll.cpp:(.text._ZN6APCore8ICommand7connectEPl[_ZN6APCore8IComm 
and7connectEPl]+0x99):  Warnung: undefinierter Verweis auf 
»flashtool_waitfor_com«
...
collect2: error: ld returned 1 exit status

Markus

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.