Ошибка lnk1104 не удается открыть файл msvcrtd lib

This indicates that Visual Studio wasn’t able to find the lib (Library) directory which contains msvcrtd.lib.

IMPORTANT: This lib directory also contains linkers required during the compilation process.

So, all you need to do is override the Library Directory location. You can do so with the help of Environment Variables.

I referred to this StackOverflow Post for help. As per the answer posted, the Environment Variable LIB refers to the path where the Linker Libraries are located. Why is this method better? Because this will apply to all the projects instead of just a particular project. Also, you don’t need to download anything extra. It just works…

Follow the steps below to achieve this:

STEP-1: Search for «msvcrtd.lib» in the search bar.

STEP-2: Click «Open File Location» (available in context menu)

enter image description here

STEP-3: Copy the address of the directory from the address bar.

enter image description here

STEP-4: Search «Environment» in the taskbar and click on «Edit the system environment variables».

enter image description here

STEP-5: Click on «Environment Variables…» button.

enter image description here

STEP-6: Under «System variables» section, click on «New…» button. A dialog would pop up.

enter image description here

STEP-7: In the dialog box, enter the following:

  • Variable name: LIB
  • Variable value: [The directory you copied in «STEP-3»]

And press «OK»

enter image description here

Now, you are all done!

Я столкнулся с этим с помощью Visual Studio 2017. Я попробовал решения, предложенные здесь, с явным добавлением путей к месту расположения файла «MSVCRT.lib». Но я чувствовал, что это, вероятно, не правильный подход, потому что ранее в течение последних нескольких недель это не было проблемой с моим проектом.

После проб и ошибок я обнаружил, что если я оставлю пустое или пустое значение в разделе Linker → Input, это выдаст мне ошибку о LNK1104: невозможно открыть файл ‘MSVCRT.lib’. В конце концов я понял, что вместо этого я должен оставить это значение.

В проекте Visual Studio щелкните правой кнопкой мыши элемент проекта на панели обозревателя решений (а не само решение, которое является самым верхним элементом), затем выберите «Свойства». Оттуда сделайте следующее:

Linker → Input: % (AdditionalDependencies)

Эта дополнительная информация может быть полезна, если вы попали в ситуацию так же, как я. Я обнаружил, что я не должен помещать какие-либо несистемные пути к библиотекам в раздел Linker → Input. С моим проектом я пытался скомпилировать с внешними .lib файлами. Ранее у меня было значение в этом разделе ввода, например: $ (ProjectDir) lib; % (AdditionalDependencies), но это приводит к другим проблемам. Я обнаружил, что правильное место (кажется, пока) для размещения путей для ссылки на внешние файлы .lib в проекте C/C++ в Visual Studio 2017 находится здесь:

V C++ Каталоги → Библиотечные каталоги: $ (ProjectDir) lib; $ (LibraryPath)

Обратите внимание, что значение $ (LibraryPath) будет включать дополнительные значения, такие как унаследованные от родителей. Мой проект папок содержал папку с именем «lib», поэтому у меня было первое значение перед точкой с запятой.

Я хочу запрограммировать приложение MFC в Visual Studio 2012. Я создал пустой проект с пустым файлом cpp. когда я строю проект, я получу это сообщение об ошибке

 error LNK1104: cannot open file 'MSVCRTD.lib'  C:Usersmajdocumentsvisual studio 2012ProjectsMFCWindowDemoMFCWindowDemoLINK

Я установил «Дополнительные каталоги библиотек» в свойстве Linker of Project в путь к файлу lib

    C:Program FilesMicrosoft Visual Studio 11.0VClib

но когда я проверил путь, в нем не было MSVCRTD.lib. так что я должен сделать для этого?

У меня Visual Studio 2008, 2010 и 2012 установлены вместе, все они установлены по порядку.

0

Решение

я просто
1-деинсталлированная Visual Studio 2012,
2 — удаленная папка Microsoft Visual Studio 11.0 в программных файлах
3- удаленный узел дерева HKey_LOcal_Machine Software microsoft VisualStudio 11.0 в реестре
4- Установлена ​​Visual Studio 2012

проблема решена

0

Другие решения

Я столкнулся с подобной проблемой с Visual Studio 2017.

Мне пришлось установить несколько недостающих пакетов в VS 2017 для разработки на C ++ Desktop:

VS 2017 Пакеты для разработки на C ++

0

title description ms.date f1_keywords helpviewer_keywords ms.assetid

Linker Tools Error LNK1104

Describes the Microsoft C and C++ (MSVC) linker error LNK1104, its causes, and possible solutions.

12/13/2019

LNK1104

LNK1104

9ca6f929-0efc-4055-8354-3cf5b4e636dc

cannot open file ‘filename

This error is reported when the linker fails to open a file, either for reading or for writing. The two most common causes of the issue are:

  • your program is already running or is loaded in the debugger, and

  • your library paths are incorrect, or aren’t wrapped in double-quotes.

There are many other possible causes for this error. To narrow them down, first check what kind of file filename is. Then, use the following sections to help identify and fix the specific issue.

Can’t open your app or its .pdb file

Your app is running, or it’s loaded in the debugger

When filename is your executable’s name, or an associated .pdb file, see if your application is already running. Then check whether it’s loaded in a debugger. To fix this issue, stop the program and unload it from the debugger before building it again. If the app is open in another program, such as a resource editor, close it. If your program is unresponsive, you may need to use Task Manager to end the process. You might also need to close and restart Visual Studio.

Your app is locked by an antivirus scan

Antivirus programs often temporarily block access to newly created files, especially .exe and .dll executable files. To fix this issue, try excluding your project build directories from the antivirus scanner.

Can’t open a Microsoft library file

Windows libraries, such as kernel32.lib

If the file that can’t be opened is one of the standard library files provided by Microsoft, such as kernel32.lib, you may have a project configuration error or an installation error. Verify the Windows SDK has been installed. If your project requires other Microsoft libraries, such as MFC, make sure the MFC components were also installed by the Visual Studio installer. You can run the installer again to add optional components at any time. For more information, see Modify Visual Studio. Use the Individual components tab in the installer to choose specific libraries and SDKs.

Versioned vcruntime libraries

If the error message has a versioned Microsoft library such as msvcr120.lib, the platform toolset for that compiler version may not be installed. To fix this issue, you have two options: Upgrade the project to use the current platform toolset, or install the older toolset and build the project unchanged. For more information, see Upgrading Projects from Earlier Versions of Visual C++ and Use native multi-targeting in Visual Studio to build old projects.

Retail, Debug, or platform-specific libraries

The error may occur when you first build for a new target platform or configuration, such as Retail, or ARM64. In the IDE, verify the Platform toolset and Windows SDK Version specified in the General property page are installed. Also verify the required libraries are available in the Library Directories specified in the VC++ Directories Property Page. Check the properties for each configuration, such as Debug, Retail, x86, or ARM64. If one build works but another doesn’t, compare the settings for both. Install any missing required tools and libraries.

The vccorlib.lib library

There are no Spectre-mitigated libraries for Universal Windows (UWP) apps or components. If the error message includes vccorlib.lib, you may have enabled /Qspectre in a UWP project. Disable the /Qspectre compiler option to fix this issue. In Visual Studio, change the Spectre Mitigation property. It’s found in the C/C++ > Code Generation page of the project Property Pages dialog.

Libraries in projects from online or other sources

If you build a project copied from another computer, the library installation locations may be different. For command-line builds, verify the LIB environment variable and library paths are set correctly for the build. In Visual Studio, you can see and edit the current library paths set in the Property pages for your project. In the VC++ Directories page, choose the drop-down control for the Library Directories property, then choose Edit. The Evaluated value section of the Library Directories dialog lists the current paths searched for library files. Update these paths to point to your local libraries.

Updated Windows SDK libraries

This error can occur when the Visual Studio path to the Windows SDK is out of date. It may happen if you install a newer Windows SDK independently of the Visual Studio installer. To fix it in the IDE, update the paths specified in the VC++ Directories property page. Set the version in the path to match the new SDK. If you use the Developer Command Prompt, update the batch file that initializes the environment variables with the new SDK paths. This problem can be avoided by using the Visual Studio installer to install updated SDKs.

Can’t open a third-party library file

There are several common causes for this issue:

  • The path to your library file may be incorrect, or not wrapped in double-quotes. Or, you may not have specified it to the linker.

  • You may have installed a 32-bit version of the library but you’re building for 64 bits, or the other way around.

  • The library may have dependencies on other libraries that aren’t installed.

To fix a path issue for command-line builds, verify the LIB environment variable is set. Make sure it includes paths for all the libraries you use, and for every configuration you build. In the IDE, the library paths get set by the VC++ Directories > Library Directories property. Make sure all the directories that contain the libraries you need are listed here, for every configuration you build.

You might need to supply a library directory that overrides a standard library directory. On the command line, use the /LIBPATH option. In the IDE, use the Additional Library Directories property in the Configuration Properties > Linker > General property page for your project.

Make sure you install every version of the library you need for the configurations you build. Consider using the vcpkg package management utility to automate the installation and setup for many common libraries. When you can, it’s best to build your own copies of third-party libraries. Then you’re sure to have all the libraries’ local dependencies, built for the same configurations as your project.

Can’t open a file built by your project

You may see this error if filename doesn’t exist yet when the linker tries to access it. It can happen when one project depends on another in the solution, but the projects build in the wrong order. To fix this issue, make sure your project references are set in the project that uses the file. Then the missing file gets built before it’s required. For more information, see Adding references in Visual Studio C++ projects and Managing references in a project.

Can’t open file ‘C:Program.obj’

If you see the filename C:Program.obj in the error message, wrap your library paths in double quotes. This error happens when an unwrapped path that begins with C:Program Files gets passed to the linker. Unwrapped paths may also cause similar errors. Typically, they show an unexpected .obj file in the root of your drive.

To fix this issue for command-line builds, check the /LIBPATH option parameters. Also check the paths specified in the LIB environment variable, and the paths specified on the command line. Make sure to use double-quotes around any paths that include spaces.

To fix this issue in the IDE, add double-quotes as necessary to the following properties for your project:

  • The Library Directories property on the Configuration Properties > VC++ Directories property page,

  • The Additional Library Directories property in the Configuration Properties > Linker > General property page,

  • The Additional Dependencies property in the Configuration Properties > Linker > Input property page.

Other common issues

Path or filename issues

This error can occur when the library filename or path specified to the linker is incorrect. Or, when the path has an invalid drive specification. Look on the command line or in any #pragma comment( lib, «library_name» ) directive for issues. Check your spelling and the file extension, and verify the file exists at the specified location.

Parallel build synchronization

If you’re using a parallel build option, Visual Studio may have locked the file on another thread. To fix this issue, verify the same code object or library isn’t built in multiple projects. Use build dependencies or project references to pick up built binaries in your project.

Additional dependencies specified in the IDE

When you specify individual libraries in the Additional Dependencies property directly, use spaces to separate the library names. Don’t use commas or semicolons. If you use the Edit menu item to open the Additional Dependencies dialog box, use newlines to separate the names, not commas, semicolons, or spaces. Also use newlines when you specify library paths in the Library Directories and Additional Library Directories dialog boxes.

Paths that are too long

You may see this error when the path for filename expands to more than 260 characters. If needed, rearrange your directory structure or shorten your folder and file names to shorten the paths.

Files that are too large

This error can occur because the file is too large. Libraries or object files more than a gigabyte in size may cause problems for the 32-bit linker. A possible fix for this issue is to use the 64-bit toolset. For more information on how to use the 64-bit toolset at the command line, see How to: Enable a 64-Bit Visual C++ Toolset on the Command Line. For information on how to use the 64-bit toolset in the IDE, see Using MSBuild with the 64-bit Compiler and Tools. Also see this Stack Overflow post: How to make Visual Studio use the native amd64 toolchain.

Incorrect file permissions

This error can occur if you have insufficient file permissions to access filename. It may happen if you use an ordinary user account to access library files in protected system directories. Or, if you use files copied from other users that still have their original permissions set. To fix this issue, move the file to a writeable project directory. If the moved file has inaccessible permissions, run the takeown.exe command in an Administrator command window to take ownership of the file.

Insufficient disk space

The error can occur when you don’t have enough disk space. The linker uses temporary files in several cases. Even if you have sufficient disk space, a large link can deplete or fragment the available disk space. Consider using the /OPT (Optimizations) option; doing transitive COMDAT elimination reads all the object files multiple times.

Problems in the TMP environment variable

If the filename is named LNKnnn, it’s a filename generated by the linker for a temporary file. The directory specified in the TMP environment variable may not exist. Or, more than one directory may be specified for the TMP environment variable. Only one directory path should be specified for the TMP environment variable.

Help, my issue isn’t listed here!

When none of the issues listed here apply, you can use the feedback tools in Visual Studio for help. In the IDE, go to the menu bar and choose Help > Send Feedback > Report a Problem. Or, submit a suggestion by using Help > Send Feedback > Send a Suggestion. You can also use the Microsoft Learn Q&A site for questions, and the Visual Studio C++ Developer Community website. Use these sites to search for answers to questions and ask for help. For more information, see How to report a problem with the Visual C++ toolset or documentation.

If you’ve discovered a new way to fix this issue that we should add to this article, let us know. You can send us feedback by using the button below for This page. Use it to create a new issue in our C++ documentation GitHub repo. Thanks!

Содержание

  1. Ошибка средств компоновщика LNK1104
  2. Не удается открыть приложение или PDB-файл
  3. Приложение запущено или загружено в отладчик.
  4. Ваше приложение заблокировано антивирусной проверкой
  5. Не удается открыть файл библиотеки Майкрософт
  6. Библиотеки Windows, такие как kernel32.lib
  7. Библиотеки vcruntime с версиями
  8. Библиотеки для розничной торговли, отладки или платформы
  9. Библиотека vccorlib.lib
  10. Библиотеки в проектах из интернета или других источников
  11. Обновленные библиотеки Windows SDK
  12. Не удается открыть сторонний файл библиотеки
  13. Не удается открыть файл, созданный проектом
  14. Не удается открыть файл C:Program.obj
  15. Другие распространенные проблемы
  16. Проблемы с путем или именем файла
  17. Параллельная синхронизация сборки
  18. Дополнительные зависимости, указанные в интегрированной среде разработки
  19. Слишком длинные пути
  20. Слишком большие файлы
  21. Неправильные разрешения на файл
  22. Недостаточно места на диске
  23. Проблемы в переменной среды TMP
  24. Помощь, моя проблема не указана здесь!
  25. Почему фатальная ошибка » LNK1104: не удается открыть файл ‘C:Program.obj ‘» возникают при компиляции проекта C++ в Visual Studio?
  26. 19 ответов:

Эта ошибка возникает, когда компоновщику не удается открыть файл для чтения или записи. Ниже перечислены две наиболее распространенные причины проблемы.

программа уже запущена или загружена в отладчик и

пути к библиотеке неверны или не заключены в двойные кавычки.

Эта ошибка может быть вызвана многими другими возможными причинами. Чтобы сузить их, сначала проверьте, какой тип файла имеет имя файла . Затем используйте следующие разделы, чтобы определить и устранить конкретную проблему.

Не удается открыть приложение или PDB-файл

Приложение запущено или загружено в отладчик.

Если имя файла — это имя исполняемого файла или связанный PDB-файл, проверьте, запущено ли приложение. Затем проверьте, загружена ли она в отладчик. Чтобы устранить эту проблему, остановите программу и выгрузите ее из отладчика перед повторной сборкой. Если приложение открыто в другой программе, например редактор ресурсов, закройте его. Если программа не отвечает, может потребоваться использовать диспетчер задач для завершения процесса. Кроме того, может потребоваться закрыть и перезапустить Visual Studio.

Ваше приложение заблокировано антивирусной проверкой

Антивирусные программы часто временно блокируют доступ к вновь созданным файлам, особенно .exe и .dll исполняемым файлам. Чтобы устранить эту проблему, попробуйте исключить каталоги сборки проекта из антивирусного сканера.

Не удается открыть файл библиотеки Майкрософт

Библиотеки Windows, такие как kernel32.lib

Если файл, который не удается открыть, является одним из файлов стандартной библиотеки, предоставляемых корпорацией Майкрософт, например kernel32.lib, может возникнуть ошибка конфигурации проекта или ошибка установки. Убедитесь, что пакет WINDOWS SDK установлен. Если для проекта требуются другие библиотеки Майкрософт, такие как MFC, убедитесь, что компоненты MFC также установлены установщиком Visual Studio. Установщик можно запустить еще раз, чтобы добавить дополнительные компоненты в любое время. Дополнительные сведения см. в Изменение Visual Studio. Используйте вкладку «Отдельные компоненты » в установщике, чтобы выбрать определенные библиотеки и пакеты SDK.

Библиотеки vcruntime с версиями

Если сообщение об ошибке содержит версию библиотеки Майкрософт, например msvcr120.lib, набор инструментов платформы для этой версии компилятора может быть не установлен. Чтобы устранить эту проблему, у вас есть два варианта: обновить проект, чтобы использовать текущий набор инструментов платформы, или установить старый набор инструментов и выполнить сборку проекта без изменений. Дополнительные сведения см. в разделе «Обновление проектов с более ранних версий Visual C++ и использование собственного многонацеливания в Visual Studio для сборки старых проектов».

Библиотеки для розничной торговли, отладки или платформы

Эта ошибка может возникнуть при первой сборке для новой целевой платформы или конфигурации, например розничной торговли или ARM64. Убедитесь, что в интегрированной среде разработки установлены набор инструментов платформы и версия windows SDK , указанные на странице свойств «Общие «. Также убедитесь, что необходимые библиотеки доступны в каталогах библиотек, указанных на странице свойств каталогов VC++. Проверьте свойства каждой конфигурации, такие как отладка, розничная торговля, x86 или ARM64. Если одна сборка работает, но другая нет, сравните параметры для обоих. Установите все отсутствующие необходимые средства и библиотеки.

Библиотека vccorlib.lib

Для приложений или компонентов универсальной платформы Windows (UWP) нет библиотек, смягчаемых spectre. Если сообщение об ошибке содержит vccorlib.lib, возможно, вы включили /Qspectre в проекте UWP. Отключите параметр компилятора /Qspectre , чтобы устранить эту проблему. В Visual Studio измените свойство «Устранение рисков Spectre «. Он находится на странице создания кодаC/C++> диалогового окна страниц свойств проекта.

Библиотеки в проектах из интернета или других источников

При сборке проекта, скопированного с другого компьютера, расположения установки библиотеки могут отличаться. Для сборок командной строки убедитесь, что переменная среды LIB и пути библиотеки заданы правильно для сборки. В Visual Studio можно просматривать и изменять текущие пути библиотеки, заданные на страницах свойств проекта. На странице каталогов VC++ выберите раскрывающийся список для свойства «Каталоги библиотеки «, а затем нажмите кнопку «Изменить«. В разделе «Оцененное значение » диалогового окна «Каталоги библиотеки » перечислены текущие пути, которые искали файлы библиотеки. Обновите эти пути, чтобы они указывали на локальные библиотеки.

Обновленные библиотеки Windows SDK

Эта ошибка может возникать, если путь Visual Studio к Пакету SDK для Windows устарел. Это может произойти, если вы устанавливаете более новый пакет SDK для Windows независимо от установщика Visual Studio. Чтобы исправить его в интегрированной среде разработки, обновите пути, указанные на странице свойств каталогов VC++. Задайте версию в пути, чтобы она соответствовала новому пакету SDK. Если вы используете командную строку разработчика, обновите пакетный файл, который инициализирует переменные среды новыми путями пакета SDK. Эту проблему можно избежать с помощью установщика Visual Studio для установки обновленных пакетов SDK.

Не удается открыть сторонний файл библиотеки

Эта проблема связана с несколькими распространенными причинами.

Путь к файлу библиотеки может быть неправильным или не заключен в двойные кавычки. Или, возможно, вы не указали его компоновщику.

Возможно, вы установили 32-разрядную версию библиотеки, но вы создаете для 64-разрядных или наоборот.

Библиотека может иметь зависимости от других библиотек, которые не установлены.

Чтобы устранить проблему пути для сборок из командной строки, убедитесь, что задана переменная среды LIB. Убедитесь, что он содержит пути для всех используемых библиотек и для каждой сборки конфигурации. В интегрированной среде разработки пути библиотеки задаются свойствомкаталогов>библиотеки VC++. Убедитесь, что все каталоги, содержащие необходимые библиотеки, перечислены здесь для каждой сборки конфигурации.

Возможно, потребуется указать каталог библиотеки, который переопределяет каталог стандартной библиотеки. В командной строке используйте параметр /LIBPATH . В интегрированной среде разработки используйте свойство «Дополнительные каталоги библиотек» на странице свойств компоновщика > конфигурации > общего свойства проекта.

Убедитесь, что установлены все версии библиотеки, необходимые для конфигураций, которые вы создаете. Рассмотрите возможность использования служебной программы управления пакетами vcpkg для автоматизации установки и установки для многих общих библиотек. Когда это возможно, лучше создавать собственные копии сторонних библиотек. После этого вы уверены, что все локальные зависимости библиотек созданы для тех же конфигураций, что и проект.

Не удается открыть файл, созданный проектом

Эта ошибка может появиться, если имя файла еще не существует, когда компоновщик пытается получить к нему доступ. Это может произойти, если один проект зависит от другого в решении, но проекты создаются в неправильном порядке. Чтобы устранить эту проблему, убедитесь, что ссылки на проекты заданы в проекте, который использует файл. Затем отсутствующий файл будет создан до его необходимости. Дополнительные сведения см. в статье «Добавление ссылок в проектах Visual Studio C++ и управление ссылками в проекте».

Не удается открыть файл C:Program.obj

Если в сообщении об ошибке отображается имя файла C:Program.obj , заключите пути библиотеки в двойные кавычки. Эта ошибка возникает, когда несмеченный путь, начинающийся с C:Program Files , передается компоновщику. Несмеченные пути также могут привести к аналогичным ошибкам. Как правило, они отображают непредвиденный OBJ-файл в корне диска.

Чтобы устранить эту проблему для сборок из командной строки, проверьте параметры параметра /LIBPATH . Также проверьте пути, указанные в переменной среды LIB, и пути, указанные в командной строке. Обязательно используйте двойные кавычки для всех путей, включающих пробелы.

Чтобы устранить эту проблему в интегрированной среде разработки, добавьте двойные кавычки при необходимости в следующие свойства проекта:

Свойство «Каталоги библиотеки » на странице свойств каталогов VC++ «Свойства > конфигурации» ,

Свойство «Дополнительные каталоги библиотек» на странице свойств компоновщика > конфигурации > «Общие свойства»

Свойство Additional Dependencies (Дополнительные зависимости) на странице входных данных компоновщика свойств компоновщика > конфигурации>.

Другие распространенные проблемы

Проблемы с путем или именем файла

Эта ошибка может возникать, если имя файла библиотеки или путь, указанный компоновщику, неправильный. Или, если путь содержит недопустимую спецификацию диска. Просмотрите командную строку или в любой директиве #pragma comment( lib, «library_name» ) для проблем. Проверьте орфографию и расширение файла и убедитесь, что файл существует в указанном расположении.

Параллельная синхронизация сборки

Если вы используете параметр параллельной сборки, Visual Studio, возможно, заблокировали файл в другом потоке. Чтобы устранить эту проблему, убедитесь, что один и тот же объект кода или библиотека не встроены в несколько проектов. Используйте зависимости сборки или ссылки на проекты для получения встроенных двоичных файлов в проекте.

Дополнительные зависимости, указанные в интегрированной среде разработки

При указании отдельных библиотек непосредственно в свойстве «Дополнительные зависимости» используйте пробелы для разделения имен библиотек. Не используйте запятые или точки с запятой. Если вы используете пункт меню «Изменить «, чтобы открыть диалоговое окно «Дополнительные зависимости» , используйте новые строки, чтобы разделить имена, а не запятые, точки с запятой или пробелы. Также используйте новые линии при указании путей к библиотеке в диалоговых окнах каталогов библиотек и дополнительных каталогов библиотек .

Слишком длинные пути

Эта ошибка может появиться, когда путь к имени файла расширяется до более чем 260 символов. При необходимости измените структуру каталога или сократите имена папок и файлов, чтобы сократить пути.

Слишком большие файлы

Эта ошибка может возникнуть из-за слишком большого размера файла. Библиотеки или файлы объектов, превышающие размер гигабайта, могут вызвать проблемы для 32-разрядного компоновщика. Возможное исправление этой проблемы — использовать 64-разрядный набор инструментов. Дополнительные сведения об использовании 64-разрядного набора инструментов в командной строке см. в разделе «Практическое руководство. Включение 64-разрядного набора инструментов Visual C++ в командной строке». Сведения об использовании 64-разрядного набора инструментов в интегрированной среде разработки см. в статье «Использование MSBuild с 64-разрядным компилятором и инструментами». См. также эту запись Stack Overflow: как сделать Visual Studio использовать собственную цепочку инструментов amd64.

Неправильные разрешения на файл

Эта ошибка может возникнуть, если у вас недостаточно разрешений на доступ к имени файла. Это может произойти, если вы используете обычную учетную запись пользователя для доступа к файлам библиотек в защищенных системных каталогах. Или, если вы используете файлы, скопированные другими пользователями, которые по-прежнему имеют свои исходные разрешения. Чтобы устранить эту проблему, переместите файл в каталог проектов, доступный для записи. Если перемещаемый файл имеет недоступные разрешения, выполните команду takeown.exe в окне командной строки администратора, чтобы взять на себя владение файлом.

Недостаточно места на диске

Ошибка может возникать, если у вас недостаточно места на диске. Компоновщик использует временные файлы в нескольких ситуациях. Даже если у вас достаточно места на диске, большая ссылка может очертить или фрагментировать доступное место на диске. Рассмотрите возможность использования параметра /OPT (оптимизация); выполнение транзитивного исключения COMDAT считывает все файлы объектов несколько раз.

Проблемы в переменной среды TMP

Если имя файла называется LNKnnn, это имя файла, созданное компоновщиком для временного файла. Каталог, указанный в переменной среды TMP, может не существовать. Или для переменной среды TMP может быть указано несколько каталогов. Для переменной среды TMP следует указать только один путь к каталогу.

Помощь, моя проблема не указана здесь!

Если ни одна из перечисленных здесь проблем не возникает, вы можете использовать средства обратной связи в Visual Studio для получения справки. В интегрированной среде разработки перейдите в строку меню и выберите «Отправить > отзыв о > проблеме«. Кроме того, отправьте предложение с помощью справки > по отправке отзывов>. Вы также можете использовать сайт Microsoft Learn Q&A для вопросов и веб-сайт Visual Studio C++ Сообщество разработчиков. Используйте эти сайты для поиска ответов на вопросы и запроса справки. Дополнительные сведения см. в статье «Как сообщить о проблеме с набором инструментов или документацией visual C++».

Если вы обнаружили новый способ устранения этой проблемы, которую мы должны добавить в эту статью, сообщите нам об этом. Вы можете отправить нам отзыв с помощью кнопки ниже для этой страницы. Используйте его для создания новой проблемы в репозитории GitHub документации по C++. Спасибо!

Источник

Почему фатальная ошибка » LNK1104: не удается открыть файл ‘C:Program.obj ‘» возникают при компиляции проекта C++ в Visual Studio?

Я создал новый проект C++ в Visual Studio 2008. Код еще не написан, изменены только настройки проекта.

когда я компилирую проект, я получаю следующую фатальную ошибку:

фатальная ошибка LNK1104: не удается открыть файл ‘C:Program.obj’

19 ответов:

эта конкретная проблема вызвана указанием зависимости для файла lib, который имел пробелы в своем пути. Путь должен быть окружен кавычками для правильной компиляции проекта.

на Свойства Конфигурации -> Компоновщик -> Ввод вкладка свойств проекта, есть Дополнительные Зависимости собственность. Эта проблема была исправлена путем изменения этого свойства:

C:Program файлыпрограммное обеспечение sdklib библиотека.Либ

» C:Program файлыпрограммное обеспечение sdklib библиотека.lib»

где я добавил кавычки.

Это может произойти, если файл все еще работает.

:-1: ошибка: LNK1104: не удается открыть файл ‘ debug****.exe’

проблема ушла для меня после закрытия и повторного открытия Visual Studio. Не знаю, почему возникла проблема, но это может быть стоит попробовать.

Это было на VS 2013 Ultimate, Windows 8.1.

проверьте также, что вы не включили это: свойства конфигурации -> C / C++ — > препроцессор -> предварительная обработка файла.

У меня было то же самое problem.It вызвано символом», » в имени папки дополнительной библиотеки path.It решается путем изменения дополнительного пути к библиотеке.

моя проблема была отсутствует .lib расширение, я просто связывал против mylib и ВС решил искать mylib.obj .

в моем случае это был вопрос неправильной ссылки. Проект ссылался на вывод другого проекта, но последний не выводил файл, где первый искал.

для сборки проекта (название проекта -> построение зависимостей -> сборки настройки -> компилятор MASM (некоторые)), задание Создать Предварительно Обработанный Список Источников до True вызвал проблему и для меня, очистив настройку, исправил ее. VS2013 здесь.

Я сталкиваюсь с той же проблемой, когда компоновщик жалуется на отсутствие основного исполняемого файла. Это произошло во время нашего порта решения для нового Visual Studio 2013. Решение представляет собой разнообразное сочетание управляемых и неуправляемых проектов / кода. Проблема (и исправить) в конечном итоге отсутствует приложение.конфигурации файл в папке решения. Потребовался день, чтобы понять это: (, поскольку выходной журнал был не очень полезен.

Я проверил все мои настройки в соответствии с этим списком:http://msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback . Это полезно для меня и для моей ситуации, я узнаю, что ссылочная зависимость свойств проектов имеет двойную кавычку, которой не должно быть.

у меня была та же ошибка, только с пакетом Nuget, который я установил (тот, который не является только заголовком), а затем попытался удалить.
Что было неправильно для меня, так это то, что я все еще включал заголовок для пакета, который я только что удалил в одном из моих .cpp файлы (довольно глупо, да).
Я даже удалил дополнительную ссылку на каталоги библиотеки в Project -> Properties -> Linker -> General , но, конечно, безрезультатно, так как я все еще пытался ссылаться на несуществующий заголовок.

определенно сбивает с толку сообщение об ошибке в этом случае, так как имя заголовка но ошибка дала мне «cannot open file ‘llibboost_filesystem-vc140-mt-gd-1_59.lib’» и никаких номеров строк или чего-то еще.

Я отвечаю, потому что я не вижу это конкретное решение, перечисленное кем-либо еще.

по-видимому, мой антивирус (Ad-Aware) отмечал DLL, от которой зависит один из моих проектов, и удалял его. Даже после исключения каталога, где живет DLL, то же самое поведение продолжалось до тех пор, пока я не перезагрузил компьютер.

У меня была та же проблема, но решение для моего случая не указано в ответах. Моя антивирусная программа (AVG) определила файл MyProg.exe как вирус и положить его в «хранилище вирусов». Вам нужно проверить этот склад, и если файл есть — то просто восстановить его. Это меня выручило.

Решение 1 (для моего случая): перезапустите процесс Проводника windows (да, диспетчер файлов windows).

  1. Закрыть Visual Studio. Выход Из Системы Windows
  2. вход в систему, откройте Visual Studio
  3. построить как обычно. Теперь он строит и может получить доступ к проблемному файлу.

Я предполагаю, что иногда файловая система или тот, кто ее контролирует, теряется с ее разрешениями. Перед перезапуском сеанса windows, пытался убить зомби msbuild32.exe процессы, перезагрузите visual studio, не проверяйте даже отображение файла проблемы. Нет проблем с конфигурацией сборки. Это случается время от времени. Некоторые внутренние вещи в Windows не исправляются,требуется перезагрузка.

в моем случае Я заменил файлы математической библиотеки из предыдущего графического курса игрового движка на GLM. Проблема заключалась в том, что я не добавил их в проект в обозревателе решений Visual Studio (даже если они были в репозитории проекта).

У меня была эта проблема в сочетании с ошибкой LNK2038, а затем это post для разделения библиотеки DLL выпуска и отладки. В этом процессе я очистил всю папку, в которой находились эти зависимости.

к счастью, у меня была резервная копия всех этих файлов, и я получил файл, для которого эта ошибка отбрасывала обратно в папку отладки, чтобы решить проблему. Код ошибки вводил в заблуждение каким-то образом, поскольку мне пришлось потратить много времени, чтобы прийти к этому совету от одного из ответов с этого поста снова.

надеюсь, что этот ответ, помогает кому-то в нужде.

Я решил это с помощью добавлять an существующий проектto мой решение, который я забыл добавить в первый раз.

Это было вызвано ; в конце. Если у вас есть несколько библиотек, они должны быть разделены пустым пространством (пробел), без запятой или точки с запятой!

Так что не используйте ; или что-нибудь еще при перечислении библиотек в свойства проекта > > свойства конфигурации > > Компоновщик > > ввод

У меня была такая же проблема , я просто скопировал код в новый проект и начали строить . Некоторые другие ошибки начали приходить. ошибка C4996:’ fopen’: эта функция или переменная может быть небезопасной. Рассмотрите возможность использования fopen_s вместо

снова решить эту проблему, я добавил свое одно свойство в проект, как показано ниже. Проект — > свойства — > свойство конфигурации — > c/c++ . В этой категории есть поле Имя препроцессора определения Я добавил _CRT_SECURE_NO_WARNINGS это для решения проблемы Надеюсь, это поможет .

Источник

I have just uninstalled Visual Studio 2012 in favor of reinstalling Visual C++ 2010 Express. The reason is that I cannot get an API to work with 2012 and I had been using 2010 previously and know it works so I wanted to revert back. So, after reinstalling VC++ 2010 Express and attempting to run a simple Win32 Console App:

int main () {

    return 0;

}

I get this error: LINK : fatal error LNK1104: cannot open file ‘MSVCRTD.lib’

I’ve done research and am aware of this typically being an issue where I would just need to point the Additional Include Directories to the VC/lib folder in the VC++ root folder [See this thread] however that lib folder doesn’t actually exist. I’ve attempted to completely uninstall and reinstall the software several times but it yields the same results.

What else can I do? I have a couple other Visual Studio products on my machine and I don’t want to completely uninstall everything because some of it takes a long time to set back up. Here are some images to help get an understanding:

Actual error message:

enter image description here

VC++ folder where lib should be located:

enter image description here

Programs and Features (in case you want to see what other products are installed):

enter image description here

Понравилась статья? Поделить с друзьями:
  • Ошибка lnk1104 не удается открыть файл msvcprtd lib
  • Ошибка lnk1104 не удается открыть файл msmpi lib
  • Ошибка lnk1104 не удается открыть файл kernel32 lib
  • Ошибка lnk1104 не удается открыть файл glut32 lib
  • Ошибка l20 в стиральной машине