Pregunta

Estoy tratando de crear un archivo de objeto que pueda usarse en cualquier computadora. Entonces, lo que hice fue crear un montón de funciones y colocarlas en un archivo .c. Se utiliza gcc -c myfile.c que produce myfile.o. (Estoy ejecutando Windows XP y obtuve gcc de DevC ++) Luego creo otro programa que usa mi archivo de objeto.

Todo parece estar bien, excepto cuando intento copiar el archivo .o y usarlo en otra PC. Cuando copio mi archivo que utiliza el archivo de objeto, lo compilo y lo ejecuto, solo aparece la ventana que me informa de un error y si deseo enviar un informe de errores.

Cuando intento recompilar el archivo .c de mi archivo de objeto en la otra PC y vuelvo a ejecutar el programa, parece que funciona.

Entonces, lo que no entiendo es por qué no puedo simplemente compilar el archivo .o una vez en una máquina, copiarlo en otra máquina y crear un programa que use el mismo archivo de objeto sin tener que volver a compilar el archivo de objeto.

¡Gracias!

¿Fue útil?

Solución

¿Por qué no piensas en crear una biblioteca compartida para mover el código objeto? (.so o un .dll)

Otros consejos

Lo más probable es que esto sea porque estás usando diferentes bibliotecas de C. Trate de usar exactamente la misma versión de gcc, instalada desde el mismo paquete, en todas las máquinas.

Así que usas la versión gcc de DevC ++, no la mezcles con otros paquetes de gcc como MinGW.

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