Guten Morgen, ich weiß nicht ob man das so über einen Kamm scheren kann aber ich beschreibe einfach mal mein Problem: Ich habe in meinem Praktikum das MPU9150 SDK von Invensense zu Verfügung bekommen, da ist eine API dabei. Soweit so gut. Also nehme ich mir einfach meine .h´s die dabei sind include sie. Wenn ich jetzt die Funktionen daraus aufrufen will bekomme ich leider immer einen link error... mach ich da irgendwas programmiertechnisch falsch oder bräuchtet ihr für Hilfestellung genauere Informationen. Viele Grüße
Du hast noch linker-objekte bekommen (wenn nicht dann ist der Hersteller unfähig) die musst du beim linker-call mitnehmen...
Ok werd ich mal schaun, mein problem is einfach das ich in C einfach nicht der crack bin xD aber das scheint meinem Chef nicht zu intressieren xD wo mach ich denn den linker-call, wie sehen linker-objekte aus und wie nehme ich die dann mit ... leider spuckt googel mir da nichts richtiges aus ...
Das sind doch absolute Basics. Eine API besteht aus Code, aber nicht aus Source code sondern in compilierter Form. Also in Form von Objekten und/oder Bibliotheken. Und wenn dein Programm die benutzen soll musst du die dazulinken. Besorg dir einen Kerninghan Ritchie und lese die Basics, die sind auch noch in Zeiten von Clicki Bunti Zusammenschubs statt Programmieren nützlich.
hab mal das was ich vom anbieter runterladen kann hier mit reingestellt... das ist ein codecomposer studio projekt soweit ich das verstanden habe und ich werde einfach nicht schlau daraus was ich davon jetzt brauche, wenn ich ein eigenes projekt erstellen will...
Du musst vermutlich zwei Dinge tun: 1. Header Files in dein Projekt einbinden und gegen diese kompilieren 2. Dem Linker sagen, dass er gegen das .lib file linken soll Beides kannst du sicher in deiner IDE einstellen (keine Ahnung was du da benutzt).
Hab mir das zip nicht angeschaut. Die Vorbeter haben dir ja schon zu erklären versucht, dass das Header file nur Text ist, und du für ein lauffähiges Programm auch den object code benötigst. Den musst du entweder aus den sourcen selbst bauen oder vom Lieferanten besorgen. Zu guter letzt musst du dem Linker dann noch mitteilen, wo er das object dile findet. Das sind wirklich Grundlagen: Wie baut ein c compiler Programme? Welche Aufgaben übernehmen Präprozessor und Linker? Was sind C Stamdard Libraries? Wie baue oder verwende ich eigene Libs?
Außerdem könnte es zu deiner API ja auch Beispiele geben, die man mal probieren kann, oder schlimmstenfalls eine eventuelle Doku lesen. Vielleicht verrät der Hersteller sogar, wie die Beispiele zu bauen sind.
das is ja ein bespiel das problem damit ist das es über code composer studio läuft... da installier ich grade die demo das 2 mal weil es einfach nicht läuft... und in den super dokus von denen stehen auch nur die api module die ja schön und gut sind aber mir leider nichts bringen solang ich die api nicht eingebunden bekomm xD
Jan L. schrieb: > MPU9150 SDK von Invensense zu Verfügung bekommen, Jan L. schrieb: > hab mal das was ich vom anbieter runterladen kann hier mit > reingestellt... Das passt nicht zusammen. Wenn du ein SDK zur Verfügung hast sollte da ein .h Verzeichnis, ein obj oder lib Verzeichnis und Doku dabei sein.
Jan L. schrieb: > Ok werd ich mal schaun, mein problem is einfach das ich in C einfach > nicht der crack bin xD aber das scheint meinem Chef nicht zu > intressieren xD Dann Laufen hier dein paar dinge falsch üder die ich allerdings nur mutmaßen kann. 1. Es wird mal wieder ein E-techniker der "0" Ahnung von programmieren hat, für zwecke missbraucht für die man eigentlich einen Inforamtiker benötigt. 2. Du hättest doch dir mehr Mühe in Programmieren geben sollen und nicht immmer die vorgefertigten Startprojekte aus Mikrocontroller-programmierung benutzen sollen um deine Praktika abzulegen. 3. Wenns deinen chef nicht interessiert und 1 & 2 zutrifft, bist du selber schuld und du solltest das beste drauß machen ohne ein schlechtes zeugnis zu bekommen. wenn 1 & 2 nicht zutrifft und du nur die IDE nicht verstehst sollte man doch am besten zum Chef gehen und diesen Punkt ansprechen, denn das hat wenig mit C zu tun. GL HF
also was ich bekommen hab nach dem ich das bestellt hab war einfach nur das board auf der web seite gibt es dann noch ein test programm und in dem gibt es eine .lib datei ... mit der doku ist das so ne sache es unterschiedliche und es ist sehr undurchsichtig welche die richtige ist XD
punkt 2 trifft mehr oder weniger zu xD aber das hatte ich eigendlich auch schon im bewerbungsgespräch klar gemacht... nur ist das hier wohl untergegangen nunja mal sehn was ich mit den tipps und dem lieben internet jetzt so alles machen kann...
In deinem Zip-File ist ein eMP.lib
Ich schätze mal, dass das die Library sein wird, in denen die
Implementierungen stecken, deren Prototypen durch die Include Files
beschrieben werden.
> punkt 2 trifft mehr oder weniger zu
Dein Pech, dass wir in diesem Forum dafür eher weniger Verständnis
haben.
Hallo Jan Das einbinden einer API erfolgt in folgenden Schritten: 1. aus der *.DLL eine *.lib erstellen falls die nicht mitgelifert wird z.B. mit importlib (Builder) 2. einbinden der *.h und *.lib in das Projekt (statisches Linken) man kann auch dynamisch, ich persönlich ziehe statisch vor. 3. Definition der Prototypen im Projekt falls diese nicht in der *.h sind z.B. extern "C" int dllfunc(char *buffer); hier muss die Aufrufkonvention berücksichtigt werden, d.h wie die Parameter auf den Stack gelegt werden und wie bereinigt. z.B. WINAPI Pascal oder "C" 4. Project linken und dann passt das. 5. Die *.dll muss natürlich noch ins Installationsprogramm eingebaut werden. sonnst gibts ne Fehlermeldung beim Programmaufruf. Gruß Frank
Frank schrieb: > 1. aus der *.DLL eine *.lib erstellen falls die nicht mitgelifert wird > z.B. mit importlib (Builder) Sofern überhaupt eine DLL verwendet wird. Ist das nicht der Fall, entfällt dieser Punkt und Deine restlichen DLL-spezifischen Hinweise sind dann irreführend.
also so wie ich das sehe haben wir eh nur eine .lib bekommen... werd mich nach der mittagspause mal dransetzten XD
Daß da irgendwas mit DLLs zu tun ist, halte ich für unwahrscheinlich, wenn man bedenkt, daß das ganze offensichtlich für einen MSP430 geacht ist.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.