Link Error: Undefined symbol: ___strtod

Ik probeer statische koppeling van lua naar een FreePascal-toepassing. Ik heb alle fouten opgelost tijdens het linken behalve deze. Niet gedefinieerd symbool: __strtod

Alle andere Undefined-symbolen die ik kon linken via libkernel32.a, libuser32.a en libmsvcr.a van de MinGW-compiler die ik gebruikte om de liblualib.a te compileren die ik aan het koppelen ben in plaats van het gebruik van de dll.

Ik zou dit statisch gekoppeld en niet dynamisch gekoppeld willen hebben. Dus, zou iemand toevallig weten welk .lib-bestand ___strtod is gedefinieerd in of weet hoe ik kan zoeken en dit uitzoeken.

Voor zover ik weet is het een C99-functie en MinGW, GCC ondersteunt het. Dus ik zou denken dat het in een van de lib (.a) -bestanden zou zitten die erbij horen.

Bedankt,

0
strtod is ook beschreven in C89 (met dezelfde functionaliteit als in C99).
toegevoegd de auteur pmg, de bron

3 antwoord

Het maakt deel uit van de C-bibliotheek, libc. Ik weet echter niet dat je er statisch naar kunt linken. (Zijn er nog systemen met statische versies van libc?)

Libc moet standaard worden gekoppeld in een C-programma.

0
toegevoegd
het lijkt erop dat cygwin een libc.a-bestand heeft, ik heb het gekoppeld maar het bevat niet het ___strdot-symbool.
toegevoegd de auteur Don Duvall, de bron

Blijkt dat ik nooit terugkwam en mijn vraag beantwoordde toen ik aan het werk ging.

Ik zocht online naar de functie in C en compileerde deze vervolgens met MinGW in een statische bibliotheek. Met het bestand libstrtod.a dat ik heb gemaakt, kon ik het statisch koppelen aan het programma dat is gecompileerd door FreePascal.

Ik heb sindsdien de bron voor dit project moeten opgeven, omdat het op contract stond. Ik zal proberen te onthouden een voorbeeld hiervan te maken om te delen.

Bedankt voor alle reacties en suggesties.

wordt vervolgd ...

0
toegevoegd

Maak gewoon een make-bestand dat een statische versie van de bibliotheek gebruikt. De statische bibliotheken zijn normaal veel groter dan de dynamische bibliotheken. Je zou newlib kunnen downloaden en de bron direct kunnen compileren met de lua runtime, Ik vermoed dat newlib met MinGW werkt.

Ik hoop dat dit helpt.

0
toegevoegd