Realmente me gustaría obtener más en D, pero la falta de un buen soporte de biblioteca realmente me está obstaculizando. Por lo tanto, me gustaría crear algunos enlaces D para bibliotecas C existentes que me gustaría usar. Nunca he hecho ningún enlace, pero tampoco parece demasiado difícil.Escribiendo un enlace D (D2) para bibliotecas C existentes
Estoy planeando hacer esto para D2 (no específicamente D1, pero si podría ser para ambos, incluso mejor). Estoy usando el compilador DMD2.
- ¿Qué convenciones deben usarse (noté declaraciones de versión, alias y constantes regulares/definiciones de funciones)?
- ¿Cuál sería la diferencia entre el enlace a una biblioteca estática (y por lo tanto vinculada) o una biblioteca dinámica? ¿Hay alguna diferencia en el enlace?
- Para enlazar una biblioteca estática, el compilador DMD no parece aceptar archivos .a o .o, solo .lib y .obj. ¿Esto significa que las bibliotecas deben compilarse con el compilador de DMC (a diferencia del compilador de GCC) y luego vincularse a través del compilador de DMD?
Si alguien tenía un muy corto ejemplo de cómo se lograría una unión, sería una gran lleno. Actualmente puedo compilar código C con DMC, vincular los archivos objeto y ejecutar funciones desde el código C en D. Sin embargo, la mayoría de las bibliotecas C solo necesitan una inclusión de archivo de cabecera Y deben vincularse en C. No estoy seguro de cómo hacer enlaces que funcionan para eso ...
¡Gracias!
Windows? ______ – kennytm
Sí, Windows (x86). Aunque mi objetivo es hacer que las cosas sean portátiles, de ser posible ... –
Por curiosidad, ¿a qué bibliotecas te diriges? –