Forum: Compiler & IDEs multiple definitions plattform lib entfernen von symbol Tasking im lsl


von squierrel (Gast)


Lesenswert?

Hallo,

ich habe die Situation das ich eine Lib habe, welche für mehrere 
Projekte verwendet wird.
Jetzt habe ich das Spezial Projekt, wo eine Routine anders sein muss und 
ich habe einen multiple definition error.

Könnt man umgehen wenn man nach dem ersten Ergebnis den Linker abbricht 
... habe aber die Vorgabe das gegenteilige Set zu verwenden 🙄.

Lösung bisher, das entsprechende object wird aus der lib geschmissen mit 
dem archiver und dann neu versioniert. Jetzt soll bald aber jeder 
einfach losbauen können mit neu gelieferten Sub-Komponenten.
-> Ich integriere in den build prozess den Ablauf:
1. checke ob reduzierte lib vorhanden
2. wenn nicht erstelle diese mit archiver
3. versioniere das ganze
4. starte den linker prozess
-> ist mir eigentlich zu umständlich

Jetzt dachte ich, es gibt ja immer mal wieder den Fall das man sich 
überschneidende Libs hat oder mit unterschiedlicher Version wo man das 
eine oder andere noch aus der alten Lib anziehen muss.
Konnte nichts finden, aber gibt es da echt keine Option um im lsl script 
zu sagen ignoriere das folgende object aus lib.a oder das symbol aus 
lib.a? Ich habe zumindest gerade nichts gefunden. Da mir ein solches 
Thema aber nicht zum ersten mal unter kommt, kann mir nicht vorstellen 
das es da wirklich keine Option gibt 🤔.
Ich hoffe gerade, das ich einfach zu doof zum suchen bin 😅

von Oliver S. (oliverso)


Lesenswert?

squierrel schrieb:
> Jetzt dachte ich, es gibt ja immer mal wieder den Fall das man sich
> überschneidende Libs hat oder mit unterschiedlicher Version wo man das
> eine oder andere noch aus der alten Lib anziehen muss.

Nein.

> Da mir ein solches
> Thema aber nicht zum ersten mal unter kommt, kann mir nicht vorstellen
> das es da wirklich keine Option gibt 🤔.
> Ich hoffe gerade, das ich einfach zu doof zum suchen bin 😅

Nein, bist du (vermutlich) nicht. Das du nichts findest, könnte dir aber 
eine Hinweis geben, daß dein Problem nicht die fehlende Option ist, 
sondern ein völlig vermurkstes Konzept.

Oliver

: Bearbeitet durch User
von squierrel (Gast)


Lesenswert?

Vermurkst trifft es schon. Nur leider ist die Realität nicht immer ein 
Wunschkonzert ... und wenn man sauber arbeitet sind solche Themen ja 
eigentlich auch gut händelbar.

von Cartman (Gast)


Lesenswert?

Da muesstest du die Lib wohl so "patchen", dass die
unerwuenschten Objekte das Attribut weak haben.
Vielleicht reicht es, im Headerfile der Lib die Funktionen
mit diesem Attribut zu versehen.

von Oliver S. (oliverso)


Lesenswert?

squierrel schrieb:
> Jetzt habe ich das Spezial Projekt, wo eine Routine anders sein muss und
> ich habe einen multiple definition error.

Die erste Frage, die sich doch sofort stellt, ist, warum die 
Spezialfunktion die selbe Signatur haben muß wie die normale Funktion 
aus der lib?

Oliver

: 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.