2011-10-30 16 views
6

Tengo la siguiente pregunta: Me dieron la tarea: crear una aplicación. Había un archivo listo counter.h y algún otro archivo - counter.obj. Resultó que en el counter.h solo había declaraciones de las funciones: ¿cómo puedo incluir el archivo .obj en el archivo .cpp para que se compile? Estoy usando Microsoft Visual Studio 2010 - ¿y en qué carpeta debería ir el archivo?Cómo incluir archivos .obj en el proyecto

Respuesta

11

Agregue el archivo obj a la Solución tal como lo haría con los archivos cpp (generalmente hago esto arrastrando y soltando, es decir, arrastrando el archivo desde el Explorador de Windows y soltándolo en un proyecto en la ventana de Solution Exporer).

Puede poner el obj-archivo junto con cpp-files; realmente no importa.

+0

Gracias) ¡Este funcionó bastante bien! =) –

+0

Esto no funcionó para mí. No tengo idea de por qué no. – Owl

+0

@Owl Debería hacer una pregunta al respecto. Asegúrese de describir su situación exacta, lo que intentó y cómo falló. – anatolyg

4

No se puede incluir el archivo objeto en un archivo cpp.
El compilador compila el archivo cpp y genera los archivos obj, para cada archivo cpp, estos archivos se vinculan entre sí para crear una biblioteca o un archivo ejecutable.

Normalmente, debe vincular las bibliotecas (.lib o .dll) a una Aplicación. Compruebe si están con usted.

Si no es así,

Usted puede tratar de vincular el archivo de objeto para su aplicación por:
Ir a las propiedades del proyecto luego de "Property Page" seleccione el nodo "C/C++" su obtendrá "Additional Include Directories" añadir el nombre de su objeto file.Keep su archivo obj en el directorio donde está su código fuente o puede agregar el directorio desde:
Tools->Options->Projects and Solutions->VC++Directories.

Nunca he probado el segundo método excepto para proyectos académicos, que fue hace años, así que no estoy seguro, por favor verifique la información en MSDN.

+0

Pero, ¿qué debo hacer si solo tengo la declaración del contador de clase en Counter.h pero no tengo una definición de su función! El profesor me dio Counter.obj, ¿cómo puedo iniciar el programa ?, realmente no necesito saber la implementación de la clase, pero necesito compilar mi cpp, y el compilador da: error LNK2019: símbolo externo no resuelto "public: __thiscall Counter :: Counter (int) "(?? 0Counter @@ QAE @ H @ Z) al que se hace referencia en la función _main –

+0

@ArtemMoskalev: Es un ** Error de enlazador ** porque el enlazador no pudo encontrar la definición de la función que es en el archivo objeto, pruebe el método que actualicé en respuesta. –

+0

error fatal LNK1120: 1 external externo no resuelto - ¡sigue igual que no lo encuentra! Tal vez el mustake está en cómo muestro el camino al archivo? Lo puse en el directorio donde está main.cpp y en el enlazador escribió: counter.obj –

Cuestiones relacionadas