Visual studio fatal error lnk1104

I get this error. I have installed visual studio community 2015 with update 1.
  • Remove From My Forums
  • Question

  • I get this error. I have installed visual studio community 2015 with update 1.

    Please let me know

Answers

  • Dear pavana yadav,

    The file ucrtd.lib is a library from the Windows SDK and I searched it on my computer and it located in
    C:Program Files (x86)Windows Kits10Lib, and as far as I known, the Visual C ++ didn’t include the Windows SDK, I recommend you download the Windows SDK from the following links refer to your OS version, and use it to install or
    repair.

    Windows SDK for Windows 7:

    https://www.microsoft.com/en-us/download/details.aspx?id=8279

    Windows SDK for Windows 8.1:

    https://dev.windows.com/en-us/downloads/windows-8-1-sdk

    Windows SDK for Windows 10:

    https://dev.windows.com/en-US/downloads/windows-10-sdk

    if this issue still persists, please help me to collect the log. Please run the command:
    devenv /log in the developer command prompt of VS 2015 community, then upload the file (%APPDATA%MicrosoftVisualStudioVersionActivityLog.xml) to
    https://skydrive.live.com/ and
    share the link here.

    Best regards,

    Sara


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    Click
    HERE to participate the survey.

    • Marked as answer by

      Wednesday, March 16, 2016 1:02 PM

  • Dear pavana Yadav,

    Do you have both this 2 folders 10.0.10240.0 and 10.0.10150.0 in your system? If you have only 10.0.10150.0, I recommend you manually
    delete this folder (back up it before delete) then reinstall Windows SDK for Window 10 from:
    https://dev.windows.com/en-US/downloads/windows-10-sdk
    and check the folder 10.0.10240.0 will created or not.

    After that, you can try to access
    VC++ Directories
    àLibrary
    Directories
    and add the MSBuild property:
    $(UniversalCRT_IncludePath) to find the folder, like the following screenshot from my local, please refer to this blog:
    https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/

    Best regards,

    Sara


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    Click
    HERE to participate the survey.

    • Marked as answer by
      pavana yadav
      Wednesday, March 16, 2016 1:01 PM

Содержание

  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. Visual Studio C ++ / CLI Таинственная ошибка с шаблоном
  26. Решение
  27. Другие решения

Ошибка средств компоновщика LNK1104

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

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

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

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

Не удается открыть приложение или 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++. Спасибо!

Источник

Visual Studio C ++ / CLI Таинственная ошибка с шаблоном

Ну, я пытался создать C ++ DLL в Visual Studio 2015, что заняло какое-то время, так как я не очень хорош в Visual Studio.

Мне нужно получить доступ к библиотекам .NET, в частности System :: Management. (Написание кода было немного сложнее, чем требовалось из-за плохой реализации C ++, но, по крайней мере, он есть.)

Я исправил очевидные ошибки и, наконец, понял, что мне нужно включить CLR в свойствах проекта, а затем выбрать связанные библиотеки с помощью References-> Add Reference. Но после всего этого, теперь это просто странная ошибка:

Компилятор не показывает красные волнистые линии под чем-либо, и ошибка утверждает, что строка — «1», а файл — «ССЫЛКА», так что тут никакой помощи.

Я подумал, что, возможно, где-то испортил конфигурацию проекта, поэтому я создал новый проект и перенес код. Ошибка все еще произошла. Если я отключил CLR и прокомментировал .NET-зависимый код, сборка прошла без ошибок.

Поэтому я попытался создать новый проект из шаблона (Visual C ++ -> Win32 Console Application) и затем включить CLR, прежде чем делать что-либо еще. Затем я попробовал еще раз, выбрав разные версии .NET Framework.

Наконец, я попытался создать проект с шаблоном (Visual C ++ -> CLR -> CLR Console Application) и сразу же создать его. Я имею в виду буквально, не делая ничего другого. Это все еще дало ту же ошибку!

Что на земле происходит? Я что-то не так делаю или VS2015 просто сломан?

Решение

Попробуй это,
Щелкните правой кнопкой мыши проект, который показывает «LNK1104: невозможно открыть файл« MSCOREE.lib », затем выберите« Свойства »->« Свойства конфигурации »->« Каталоги VC ++ »->« Каталоги библиотек »-> Добавить обе записи снизу, разделенные точкой с запятой

Именно здесь должен быть ваш mscoree.lib, проверьте его там, прежде чем делать это, в противном случае вам может потребоваться установить / переустановить Microsoft SDK.

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

В некоторых ситуациях SDK может не установить необходимые файлы в папке LIB, как описано в MSCoree.lib отсутствует в WinSDK . Их решение состояло в том, чтобы выполнить ремонт установки. Это может не сработать.

Я успешно побежал WinSDKInterop_amd64WinSDKInterop_amd64.msi в результате чего создается:

Источник

System Details

I don’t have config.guess. I’m working on Windows 10 64bit.

$ x86_64-w64-mingw32-gcc —version
x86_64-w64-mingw32-gcc (GCC) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Problems Description

Hi all,

I’m currently having issue getting some JNA libraries built as jar deployables using Ant build script (FYI: https://github.com/thepaul/libjna-java). in order to use the APIs from this library for my other project.

I already have the source project downloaded.

Tried to compile using Ant (which I downloaded the latest version) on cygwin. Failed because it requires libffi.
So I downloaded libffi source from here (https://github.com/libffi/libffi).

Tried to compile again using Ant. Failed because it couldn’t find «/c/Program Files (x86)/Microsoft Visual Studio 9.0/vc/bin/cl» as mentioned in the config.log
So I inspected cc.sh and found that it refers to an older version of Microsoft Visual Studio. I have an existing installation of Visual Studio Express. So I changed the path to «C:Program Files (x86)Microsoft Visual Studio2017WDExpressVCToolsMSVC14.16.27023binHostx86x64» in cc.sh file.

Tried to complile again using Ant. Failed with different error because it couldn’t find «mspdbcore.dll».
I found this file in «..x86» so I copy the file across to ..x64

Tried to compile again using Ant. Failed with similar error but different file because it couldn’t find «mspdb140.dll»
I found this file in «..x86» so I copied over

Tried to compile again. Failed with different error because it «LINK : fatal error LNK1104: cannot open file ‘LIBCMT.lib'», although this file is definitely in «C:Program Files (x86)Microsoft Visual Studio2017WDExpressVCToolsMSVC14.16.27023libx64»

To tackle this error I tried:

  1. adding microsoft visual studio paths to PATH
    C:Program Files (x86)Microsoft Visual Studio2017WDExpressVCToolsMSVC14.16.27023binHostx86x64
    C:Program Files (x86)Microsoft Visual
    Studio2017WDExpressVCToolsMSVC14.16.27023libx64
    C:Program Files (x86)Microsoft Visual Studio2017WDExpressCommon7IDE
  2. Downloaded MS Visual Studio 2019 both Community and Professional (couldn’t find those dlls for some reason)
  3. Downloaded both mspdb140.dll and mspdbcore.dll separately, config.log says it can’t find these files

Note I also did some research online:
a. I don’t use visual studio IDE, so this post didn’t really help much (https://stackoverflow.com/questions/9356135/link-fatal-error-lnk-1104-cannot-open-file-libcmt-lib)
b. I don’t really understand the answer to this post either (https://social.msdn.microsoft.com/Forums/en-US/cbedc1ba-c50b-499e-aa2e-12b0ce6a40ba/lnk1104-cannot-open-file-libcmtlib?forum=vclanguage)

So this is where I’m stuck.

See latest config log attached.
config.log

Anyone can help would be much appreciated!

Cheers
Dale

  • Remove From My Forums
  • Question

  • I have a project built well with VC++ 6.0. The project is built with mutlti-threaded DLL and the project depends on 4 specific libraries and serveral rouge wave libraries.

    Now I try to build it with VS2005 and get the linking error «cannot open file libc.lib». It seems our specific libraries is built with single-threaded DLL, I am not sure, but that is what I want to find out.
    I used /VERBOSE to display the progress message, but couldn’t find out which library depends on libc.lib.
    I added libc.lib into ignore specific library and got the 127 linking errors which are related to rouge wave libraries. The following are some errors:

    tls77-ms.lib(rec.obj) : error LNK2001: unresolved external symbol __imp_?_Xran@std@@YAXXZ
    tls77-ms.lib(cstring.obj) : error LNK2019: unresolved external symbol «class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)» (??5std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z) referenced in function «public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall RWCString::readToken(class std::basic_istream<char,struct std::char_traits<char> > &)» (?readToken@RWCString@@QAEAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV23@@Z)

    If I dont’ ignore libc.lib, I always get one linking error «cannot open file libc.lib».
    I also tried to use command «link /dump /directives xxx.lib» to check if any library forces to link libc.lib, but it seems all specific libraries are good.

    Does anyone have any idea to locate this issue?
    Thanks in advance!

Answers

  • What I meant is the build log html file where the compiler and linker switches are specified.

    Thanks,
      Ayman Shoukry
      VC++ Team



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

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

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


2436  


19  

19 ответов:

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

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

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

To:

» 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. Решение представляет собой разнообразное сочетание управляемых и неуправляемых проектов / кода. Проблема (и исправить) в конечном итоге отсутствует приложение.конфигурации файл в папке решения. Потребовался день, чтобы понять это: (, поскольку выходной журнал был не очень полезен.

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

определенно сбивает с толку сообщение об ошибке в этом случае, так как имя заголовка <boost/filesystem.hpp> но ошибка дала мне "cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'" и никаких номеров строк или чего-то еще.

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

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

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

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

решение 2:

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

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

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

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

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

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

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

у меня была та же ошибка:

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

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

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

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

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

Спасибо

2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

1

27.08.2012, 11:06. Показов 19328. Ответов 63


Доброго времени суток. Пишу программу с DirectX и столкнулся с проблемой: код нормально компилируется, но после вылезает ошибка
1>LINK : fatal error LNK1104: не удается открыть файл »d3dx9.lib»
Пути к библиотеке прописал. В дополнительные зависимости линкера ставил. Уже писал #pragma comment(lib.»d3dx9.h») И даже переустанавливал DirectX SDK пару раз. И хоть тресни. Ошибка упорно появляется и не собирается исчезать. Как это исправить? Подскажите пожалуйста.



0



Эксперт С++

4978 / 3085 / 456

Регистрация: 10.11.2010

Сообщений: 11,164

Записей в блоге: 10

27.08.2012, 11:17

2

Писать надо так:

Цитата
Сообщение от Hydrogen
Посмотреть сообщение

#pragma comment( lib, «d3dx9.lib» )



0



2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

27.08.2012, 11:20

 [ТС]

3

Цитата
Сообщение от lazybiz
Посмотреть сообщение

Писать надо так:

Это я в сообщении по привычке .h поставил. В проекте ровно так, как вы указали. Так что проблема не в этом.



0



Делаю внезапно и красиво

Эксперт С++

1312 / 1227 / 72

Регистрация: 22.03.2011

Сообщений: 3,744

31.08.2012, 18:29

4

Цитата
Сообщение от Hydrogen
Посмотреть сообщение

Пути к библиотеке прописал.

Пути к библиотеке прописал ГДЕ? (это я тебе наводящий вопрос задаю)



0



2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

31.08.2012, 18:43

 [ТС]

5

Цитата
Сообщение от Deviaphan
Посмотреть сообщение

Пути к библиотеке прописал ГДЕ? (это я тебе наводящий вопрос задаю)

В свойствах проекта, C++, дополнительные каталоги включения. кст на d3d9.lib, подключенный таким же образом, компиллятор не ругается



0



Делаю внезапно и красиво

Эксперт С++

1312 / 1227 / 72

Регистрация: 22.03.2011

Сообщений: 3,744

31.08.2012, 19:18

6

А надо в настройки компоновщика пути до либов прописать, а не только до хэдэров в настройках компилятора.



0



2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

31.08.2012, 19:43

 [ТС]

7

Т.е. зайти в свойства -> свойства конфигурации -> компоновщик, а дальше смотреть -> ввод -> дополнительные зависимости? или как? если вы имеете ввиду первый вариант, то я его уже пробовал, не вышло. и ругается он конкретно на d3dx9.lib, а d3d9.lib подключает без вопросов.



0



555 / 509 / 25

Регистрация: 23.07.2009

Сообщений: 2,359

Записей в блоге: 1

31.08.2012, 20:00

8

Цитата
Сообщение от Hydrogen
Посмотреть сообщение

ругается он конкретно на d3dx9.lib, а d3d9.lib подключает без вопросов.

это как? как видно, что «без вопросов»?



0



2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

31.08.2012, 20:06

 [ТС]

9

Цитата
Сообщение от novi4ok
Посмотреть сообщение

это как? как видно, что «без вопросов»?

У меня есть функция инициализации Direct3D для которой нужен d3d9.lib и эта функция компилируется нормально, без ошибок. А все, что связано с d3dx9.lib не работает и компилятор выдает LNK1104. Если убрать pragma comment, то выдает ошибку на неразрешенный внешний символ, т.е. нашел прототип функции, но не нашел определение



0



555 / 509 / 25

Регистрация: 23.07.2009

Сообщений: 2,359

Записей в блоге: 1

31.08.2012, 20:50

10

Цитата
Сообщение от Hydrogen
Посмотреть сообщение

А все, что связано с d3dx9.lib не работает и компилятор выдает LNK1104.

почему компилятор? эту ошибку выдает линкер.



0



2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

31.08.2012, 20:54

 [ТС]

11

Цитата
Сообщение от novi4ok
Посмотреть сообщение

почему компилятор? эту ошибку выдает линкер.

Ваша правда. Извиняюсь.



0



Эксперт С++

4978 / 3085 / 456

Регистрация: 10.11.2010

Сообщений: 11,164

Записей в блоге: 10

31.08.2012, 21:01

12

Ну тогда показывай скрины и код.



0



2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

31.08.2012, 21:11

 [ТС]

13

Цитата
Сообщение от lazybiz
Посмотреть сообщение

Ну тогда показывай скрины и код.

Ошибка не в коде, иначе бы не было LNK1104, проблема в том, что линкер не видит в упор d3dx9.lib



0



Эксперт С++

4978 / 3085 / 456

Регистрация: 10.11.2010

Сообщений: 11,164

Записей в блоге: 10

31.08.2012, 21:21

14

Цитата
Сообщение от Hydrogen
Посмотреть сообщение

Ошибка не в коде, иначе бы не было LNK1104, проблема в том, что линкер не видит в упор d3dx9.lib

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



0



555 / 509 / 25

Регистрация: 23.07.2009

Сообщений: 2,359

Записей в блоге: 1

01.09.2012, 01:42

15

линкер не может найти эту библиотеку. раскопируй ее во все директории, «вокруг твоего проекта». только не сразу, а сперва на уровень выше — попробовал, на уровень ниже — попробовал. и т.д. в конце-концов он ее найдет. тогда и поймешь, где он ищет (читать и разбираться ведь некогда? значит, нужно запастись терпением: два дня работы в поле могут сэкономить два часа в библиотеке или в лаборатории). или, если ты на диске c: работаешь, скопируй ее в корень и укажи c:d3dx9.lib. сходу найдет и присобачит.



0



Эксперт С++

4978 / 3085 / 456

Регистрация: 10.11.2010

Сообщений: 11,164

Записей в блоге: 10

01.09.2012, 01:48

16

novi4ok, это плохой вариант. ТС давно бы решил проблему если бы делал так, как ему советуют. Думаю он просто где-то напутал. Показал бы скрины, код, и я думаю все сразу бы встало на свои места.



0



2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

01.09.2012, 05:58

 [ТС]

17

Я свои функции построил по примеру из книги Фленова, и с другими книгами сверялся. А также смотрел MSDN ну нет ошибки в коде, НЕТУ. Вы мне лучше подскажите, почему линкер видит d3d9.lib, а d3dx9.lib, расположенный в той же папке и следующий почти сразу после d3d9.lib, не видит. А про корень C: еще посмотрю



0



Делаю внезапно и красиво

Эксперт С++

1312 / 1227 / 72

Регистрация: 22.03.2011

Сообщений: 3,744

01.09.2012, 07:08

18



2



2525 / 1751 / 152

Регистрация: 11.08.2012

Сообщений: 3,349

01.09.2012, 07:31

 [ТС]

19

Цитата
Сообщение от Deviaphan
Посмотреть сообщение

ура! заработало спс Deviaphan это реально помогло. А почему в книге про это не упоминается даже, хотя она под VC++ написана???

Добавлено через 3 минуты

Не по теме:

теперь смогу дальше двигаться, мне DirectX нужен чтобы нарисовать график функции 2-х пременных



0



Делаю внезапно и красиво

Эксперт С++

1312 / 1227 / 72

Регистрация: 22.03.2011

Сообщений: 3,744

01.09.2012, 07:54

20

Цитата
Сообщение от Hydrogen
Посмотреть сообщение

А почему

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



0



Понравилась статья? Поделить с друзьями:
  • Visual studio error lnk2019 ссылка на неразрешенный внешний символ
  • Visual studio error code 9009
  • Visual studio error code 0x80004005
  • Visual studio error 127
  • Violet 10mp 188 как исправить