Pregunta

Estoy intentando vincular estáticamente lua a una aplicación FreePascal.He corregido todos los errores durante la vinculación, excepto este. Símbolo indefinido: __strtod

Todos los demás símbolos indefinidos que pude vincular a través de libkernel32.a, libuser32.a y libmsvcr.a desde el compilador MinGW que usé para compilar el liblualib.a que estoy vinculando en lugar de usar eldll.

Me gustaría tener este enlace estático y no dinámico.Entonces, ¿alguien sabría en qué archivo .a lib ___strtod está definido o cómo puedo buscar y averiguarlo?

Que yo sepa, es una función C99 y MinGW, GCC la admiten.Entonces, creo que estaría en uno de los archivos lib (.a) que vienen con él.

Gracias,

¿Fue útil?

Solución

Resulta que nunca volví y respondí mi pregunta cuando lo hice funcionar.

Busqué en línea la función en C y luego la compilé en una biblioteca estática usando MinGW.Con el archivo libstrtod.a que creé, pude vincularlo de forma estática al programa compilado por FreePascal.

Desde entonces tuve que renunciar a la fuente de este proyecto ya que estaba en contrato, intentaré recordar hacer un ejemplo de esto para compartir.

Gracias por todas las respuestas y sugerencias.

continuará ...

Otros consejos

Es parte de la biblioteca C, libc.Sin embargo, no sé si se puede vincular estáticamente a él.(¿Existen todavía sistemas que proporcionen versiones estáticas de libc?)

Libc debería estar vinculado de forma predeterminada en un programa en C.

Just create a make file that uses a static version of the library. The static libraries are normally much bigger than the dynamic ones. You could download newlib and compile the source directly with the lua runtime, I'm guessing that newlib works with MinGW.

I hope this helps.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top