¿Por qué se produce el error fatal "LNK1104: no puedo abrir el archivo 'C: \ Program.obj'" cuando compilo un proyecto de C ++ en Visual Studio?

StackOverflow https://stackoverflow.com/questions/133698

  •  02-07-2019
  •  | 
  •  

Pregunta

He creado un nuevo proyecto de C ++ en Visual Studio 2008. No se ha escrito ningún código todavía; Solo se han cambiado las configuraciones del proyecto.

Cuando compilo el proyecto, recibo el siguiente error fatal:

  

error fatal LNK1104: no se puede abrir el archivo 'C: \ Program.obj'

¿Fue útil?

Solución

Este problema en particular es causado al especificar una dependencia a un archivo lib que tenía espacios en su ruta. La ruta debe estar entre comillas para que el proyecto se compile correctamente.

En las Propiedades de configuración - > Linker - > Ingrese la pestaña de las propiedades del proyecto, hay una propiedad Dependencias adicionales . Este problema se solucionó cambiando esta propiedad de:

  

C: \ Archivos de programa \ sofware   sdk \ lib \ library.lib

Para:

  

" C: \ Archivos de programa \ sofware   sdk \ lib \ library.lib "

Donde agregué las comillas.

Otros consejos

Esto puede suceder si el archivo también se está ejecutando.

  

: -1: error: LNK1104: no se puede abrir el archivo 'debug \ ****. exe'

El problema desapareció después de cerrar y volver a abrir Visual Studio. No estoy seguro de por qué ocurrió el problema, pero podría valer la pena intentarlo.

Esto fue en VS 2013 Ultimate, Windows 8.1.

Compruebe también que no lo tiene activado: Propiedades de configuración - > C / C ++ - > Preprocesador - > Preproceso a un archivo .

Tuve el mismo problema. Fue causado por un ", " en el nombre de una carpeta de la ruta de la biblioteca adicional. Se resolvió cambiando la ruta de la biblioteca adicional.

Mi problema era que faltaba la extensión .lib , solo estaba enlazando con mylib y VS decidió buscar mylib.obj .

En mi caso, se trataba de una referencia mal dirigida. El proyecto hizo referencia a la salida de otro proyecto, pero este último no generó el archivo que buscaba el primero.

Para un proyecto de ensamblaje (ProjectName - > Build Dependencies - > Build Customizaciones - > masm (seleccionado)), establecer Generar lista de fuentes preprocesadas en True causó El problema para mí también, al borrar la configuración lo arregló. VS2013 aquí.

Me encuentro con el mismo problema con el enlazador quejándose de que falta el ejecutable principal. Esto sucedió durante nuestro puerto de solución al nuevo Visual Studio 2013 . La solución es una mezcla variada de proyectos / código administrados y no administrados. El problema (y la solución) terminó siendo un archivo app.config perdido en la carpeta de la solución. Tomó un día para resolver esto :(, ya que el registro de salida no fue muy útil.

Verifiqué todas mis configuraciones de acuerdo con esta lista: http: // msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback . Es útil para mí y para mi situación, descubro que la dependencia de las propiedades de los proyectos de Link tiene una doble cita, que no debería estar allí.

Tuve el mismo error, solo con un paquete Nuget que había instalado (uno que no es solo encabezado) y luego intenté desinstalarlo.
Lo que estaba mal para mí era que todavía estaba incluyendo un encabezado para el paquete que acabo de desinstalar en uno de mis archivos .cpp (bastante tonto, sí).
Incluso eliminé el enlace de los directorios de la biblioteca adicionales en Project - > Propiedades - > Vinculador - > General , pero por supuesto fue en vano ya que todavía estaba tratando de hacer referencia al encabezado inexistente.

Definitivamente es un mensaje de error confuso en este caso, ya que el nombre del encabezado era < boost / filesystem.hpp > pero el error me dio " no puedo abrir el archivo 'llibboost_filesystem-vc140- mt-gd-1_59.lib '" y sin números de línea ni nada.

Tuve el mismo problema, pero la solución para mi caso no se encuentra en las respuestas. Mi programa antivirus (AVG) determinó que el archivo MyProg.exe era un virus y lo colocó en el 'almacén de virus'. Debe comprobar este almacén y, si el archivo está allí, simplemente restaurarlo. Me ayudó.

Solución 1 (para mi caso): reinicie el proceso del Explorador de Windows (sí, el administrador de archivos de Windows).

Solución 2:

  1. Cierre Visual Studio. Cierre de sesión de Windows
  2. Inicia sesión, vuelve a abrir Visual Studio
  3. Construir como de costumbre. Ahora construye y puede acceder al archivo problemático.

Supongo que a veces el sistema de archivos o quien lo controla se pierde con sus permisos. Antes de reiniciar la sesión de Windows, trató de eliminar los procesos zombi msbuild32.exe , reinicie Visual Studio, no marque ninguno y aparezca el archivo del problema. No hay problemas de configuración de compilación. Sucede de vez en cuando. Alguna cosa interna en Windows no se arregla, necesita reiniciarse.

Estoy respondiendo porque no veo esta solución en particular enumerada por nadie más.

Al parecer, mi antivirus (Ad-Aware) estaba marcando un archivo DLL en uno de mis proyectos depende y lo eliminó. Incluso después de excluir el directorio donde vive la DLL, el mismo comportamiento continuó hasta que reinicié mi computadora.

En mi caso, había reemplazado los archivos de la biblioteca matemática de un curso anterior de Game Engine Graphics con GLM. El problema era que no los agregué al proyecto dentro del Explorador de soluciones de Visual Studio (aunque estaban en el repositorio del proyecto).

Tuve este problema junto con el error LNK2038, seguí este post para segregar las DLL de RELEASE y DEBUG. En este proceso, limpié toda la carpeta donde residían estas dependencias.

Afortunadamente, tuve una copia de seguridad de todos estos archivos y obtuve el archivo por el cual este error se volvía a lanzar a la carpeta DEBUG para resolver el problema. El código de error fue engañoso de alguna manera, ya que tuve que pasar mucho tiempo para llegar a este consejo de una de las respuestas de esta publicación nuevamente.

Espero que esta respuesta ayude a alguien que lo necesite.

Lo resolví agregando un proyecto existente a mi solución , que olvidé agregar la primera vez.

Tuve el mismo error:

fatal error LNK1104: cannot open file 'GTest.lib;'

Esto fue causado por el ; al final. Si tiene varias bibliotecas, deben estar separadas por espacios vacíos (barra espaciadora), ¡sin coma o punto y coma!

Por lo tanto, no use ; ni ningún otro elemento al enumerar bibliotecas en Propiedades del proyecto > > Propiedades de configuración > > Linker > > Entrada

Llegué al mismo problema con "Visual Studio 2013".

LNK1104: cannot open file 'debug\****.exe

Se resolvió después de cerrar y reiniciar Visual Studio.

Estaba teniendo el mismo problema, acabo de copiar el código al nuevo proyecto y comencé la compilación. Algún otro error comenzó a llegar. error C4996: 'fopen': esta función o variable puede no ser segura. Considere usar fopen_s en su lugar

Para resolver este problema nuevamente, agregué mi única propiedad en el proyecto Proyecto como se muestra a continuación. Proyecto - > Propiedades - > Propiedad de configuración - > c / c ++. En esta categoría hay definiciones de preprocesador de nombre de campo He agregado _CRT_SECURE_NO_WARNINGS esto para resolver el problema Espero que ayude ...

Gracias

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