txt por manejo linea libreria leer indexados crear como codigo buscar archivos archivo c++

por - libreria fstream c++



¿Qué es el archivo*.o? (5)

Es importante tener en cuenta que los archivos de objetos se ensamblan en código binario en un formato que es reubicable . Este es un formulario que permite que el código ensamblado se cargue en cualquier lugar en la memoria para que lo use un programa de enlace con otros programas.

Las instrucciones que se refieren a etiquetas aún no tendrán una dirección asignada para estas etiquetas en el archivo .o .

Estas etiquetas se escribirán como ''0'' y el ensamblador creará un registro de reubicación para estas direcciones desconocidas. Cuando el archivo se vincula y se envía a un ejecutable, las direcciones desconocidas se resuelven y el programa se puede ejecutar.

Puede utilizar la herramienta nm en un archivo de objeto para enumerar los símbolos definidos en un archivo .o.

Estoy compilando proyecto propio. Y se detuvo por este error:

LINK || error fatal LNK1181: no se puede abrir el archivo de entrada ''obj / win / release / src / lua / bindings.o'' |

Compilación usando Code :: Blocks con el compilador VS 2005/2008 bajo win7. También hay muchos otros directorios vacíos donde faltan archivos * .o.

¿Qué hacen?


Ha recibido algunas respuestas, y la mayoría de ellas son correctas, pero perder el punto (creo) es probablemente el punto aquí

Mi conjetura es que tienes un makefile que estás tratando de usar para crear un ejecutable. En caso de que no esté familiarizado con ellos, makefiles lista dependencias entre archivos. Para un caso realmente simple, podría tener algo como:

myprogram.exe: myprogram.o $(CC) -o myprogram.exe myprogram.o myprogram.o: myprogram.cpp $(CC) -c myprogram.cpp

La primera línea dice que "myprogram.exe" depende de "myprogram.o". La segunda línea le dice cómo crear myprogram.exe desde myprogram.o. La tercera y cuarta líneas dicen que myprogram.o depende de myprogram.cpp y cómo crear myprogram.o desde myprogram.cpp (respectivamente).

Mi conjetura es que en su caso, tiene un makefile como el anterior que se creó para gcc. El problema con el que te encuentras es que lo estás utilizando con MS VC en lugar de gcc. A medida que sucede, MS VC usa ".obj" como la extensión de sus archivos de objeto en lugar de ".o".

Eso significa que cuando make (integrado en el IDE en su caso) intenta construir el programa, mira esas líneas para intentar averiguar cómo compilar myprogram.exe. Para hacer eso, ve que necesita compilar myprogram.o, por lo que busca la regla que le dice cómo compilar myprogram.o. Eso dice que debería compilar el archivo .cpp, por lo que hace eso.

Luego, las cosas se descomponen: el compilador VC ++ produce myprogram.obj en lugar de myprogram.o como archivo de objeto, por lo que cuando intenta ir al siguiente paso para producir myprogram.exe desde myprogram.o, encuentra que su intento de crear myprogram.o simplemente falló. Hizo lo que la regla decía que hiciera, pero eso no produjo mi programa.o según lo prometido. No sabe qué hacer, por lo que se cierra y le da un mensaje de error.

La solución para ese problema específico es probablemente bastante simple: edite el archivo make para que todos los archivos objeto tengan una extensión de ".obj" en lugar de ".o". Sin embargo, hay muchas dudas sobre si eso solucionará todo: eso puede ser todo lo que necesita, o simplemente puede llevar a más problemas (probablemente más difíciles).


Ink-Jet tiene razón. Más específicamente, un archivo .o (.obj) - u objeto es un archivo fuente único compilado en código de máquina ( no estoy seguro si el "código de máquina" es el mismo o similar a un código de máquina ejecutable ). En última instancia, es un intermediario entre un programa ejecutable y un archivo fuente de texto sin formato.

El enlazador usa los archivos o para ensamblar el archivo ejecutable.

Wikipedia puede tener información más detallada. No estoy seguro de cuánta información le gustaría o necesita.


Un archivo de objeto .o (también .obj en Windows) contiene código de objeto compilado (es decir, código de máquina producido por su compilador C o C ++), junto con los nombres de las funciones y otros objetos que contiene el archivo. Los archivos de objetos son procesados ​​por el enlazador para producir el ejecutable final. Si su proceso de compilación no ha producido estos archivos, probablemente haya algún problema con sus archivos de makefile / project.


Un archivo que termina en .o es un archivo objeto . El compilador crea un archivo de objeto para cada archivo fuente, antes de vincularlos juntos, en el ejecutable final.