Не удается открыть файл библиотеки freeglut
Обновлено: 21.11.2024
Во время учебы в Университете Эссекса я прошел модуль под названием «Интерактивная компьютерная графика» (или EE222, как мы его называли). Половина курса состояла из использования POV-Ray для создания изображений, а затем их объединения для создания высококачественной анимации. Другая половина курса состояла из программирования интерактивной графики в реальном времени с использованием C и OpenGL с помощью библиотеки GLUT freeglut. Я продолжил работу над своим выпускным проектом, создав симуляцию на C++ и OpenGL. Это был первый раз, когда я написал настоящее приложение, и я до сих пор питаю слабость к GLUT.
Для моего университетского проекта я использовал проект Нейта Робинса GLUT для Win32 для сборки Windows и freeglut для сборки Linux. Двоичные пакеты Windows freeglut довольно трудно найти, особенно для компилятора MinGW, поэтому я создал подходящие пакеты и разместил их в Интернете. Вы можете использовать их для создания бесплатных приложений с помощью Microsoft Visual C++ и MinGW.
Получить пример кода
Пакет Freeglut 3.0.0 MSVC
Этот пакет содержит 32- и 64-разрядные библиотеки DLL для Windows, библиотеки импорта и файлы заголовков, что позволяет писать бесплатные приложения с использованием Microsoft Visual C++. Пакет был собран из исходного кода с использованием Visual Studio 2013. Библиотека DLL бинарно совместима как с моей библиотекой DLL MinGW, так и с GLUT для библиотеки Win32, предоставленной Нейтом Робинсом. Библиотека DLL была протестирована в Windows 98 SE, Windows ME, Windows 2000, Windows XP, Windows Vista, Windows 7 (64-разрядная версия) и Windows 8 (64-разрядная версия).
Пакет Freeglut 3.0.0 MinGW
Этот пакет содержит 32- и 64-разрядные библиотеки DLL Windows, библиотеки импорта, статические библиотеки и файлы заголовков, что позволяет компилировать приложения freeglut с помощью компилятора MinGW. Пакет был собран из исходного кода с использованием MinGW. Эта библиотека бинарно совместима как с моей библиотекой DLL MSVC, так и с GLUT для библиотеки Win32, предоставленной Нейтом Робинсом. Библиотека DLL была протестирована в Windows 98 SE, Windows ME, Windows 2000, Windows XP, Windows Vista, Windows 7 (64-разрядная версия) и Windows 8 (64-разрядная версия).
Пакет также должен работать с различными IDE, которые предлагают интерфейсы для MinGW/gcc, например Eclipse, Dev-C++ и Code::Blocks. Однако вам необходимо обратиться к руководству по вашей IDE, чтобы узнать, как это сделать.
Для получения дополнительной информации об использовании freeglut с MinGW см. мою статью о GLUT MinGW.
Старые пакеты freeglut
Если вы предпочитаете загружать старые пакеты 2.4.0, 2.6.0 или 2.8.x, их можно найти в каталоге старых пакетов GLUT. Если вам нужна поддержка Windows NT 4.0, вам потребуется загрузить один из этих пакетов, так как freeglut ≥2.8.0 несовместим с этой платформой.
Проблемы?
Если у вас возникли проблемы с использованием этих пакетов (ошибки компилятора/компоновщика и т. д.), убедитесь, что вы правильно выполнили все шаги, описанные в файле readme. Почти все проблемы, о которых сообщается с этими пакетами, связаны с пропуском шага или его неправильным выполнением, например, при попытке создать 32-битное приложение с 64-битной библиотекой импорта. Если вы правильно выполнили все шаги, но ваше приложение по-прежнему не собирается, попробуйте создать очень простую, но функциональную программу (этот пример MinGW freeglut хорош, независимо от того, используете ли вы MinGW или нет). Многие люди пытаются создавать очень сложные приложения после установки этих пакетов, и часто ошибка связана с кодом приложения или другими зависимостями библиотеки, а не с freeglut.
Если вы по-прежнему не можете заставить его работать после попытки скомпилировать простое приложение, свяжитесь с нами и предоставьте как можно больше подробностей. Пожалуйста, не жалуйтесь ребятам из freeglut, если вы не уверены, что это ошибка freeglut, и воспроизвели проблему после компиляции freeglut из последней версии SVN — если это все еще так, я уверен, что они были бы признательны за отчет об ошибке или патч.
Похожие страницы
Как создавать приложения OpenGL для Windows с помощью библиотек freeglut или GLUT для Win32 и компилятора MinGW.
©2001–2018 Transmission Zero. Все права защищены. Конфиденциальность и файлы cookie.
Я пытаюсь начать использовать glew и freeglut, чтобы научиться использовать шейдеры.
Я даже не могу получить ссылку на freeglut. Я продолжаю получать эту ошибку.
1>ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл 'freeglut.lib'
Кто-нибудь знает, что может быть причиной этой проблемы?
Я скопировал эти файлы в
freeglut.h
freeglut_ext.h
freeglut_std.h
glew.h
glut.h
glxew.h
wglew.h р>
freeglut.lib
glew32.lib
glew32s.lib
glut32.dll
Я также добавил их в Linker > Input Settings проекта.
glu32.lib OpenGL32.lib freeglut.lib glut32.lib
Вам нужно будет добавить каталог, в котором находятся файлы вашей библиотеки, в параметрах Linker > General > Additional Library Directorys, если его еще нет в папке библиотеки Platform SDK. В противном случае компоновщик не будет знать, где искать эти файлы *lib.
Многие программы сообщают о невозможности найти файл как "не удалось открыть". Visual Studio — одна из них.
Как и в случае с BitMaster, Visual Studio сообщит о невозможности найти файл как "не удалось открыть". Скорее всего, это еще одна проблема с вашими файлами lib при использовании относительных путей. Можете ли вы подробнее описать структуру каталогов для вашего проекта? Также, пожалуйста, покажите нам точную строку, которую вы ввели в параметрах Linker > General > Additional Library Directorys как для режима отладки, так и для режима выпуска. Нам нужно больше деталей, чтобы точно определить, что не так.
Привет, я недавно начал читать великолепное 4-е издание openGL и не могу загрузить ни один из примеров исходного кода с сайта, чтобы работать, и провел весь день, прочесывая сеть в поисках некоторых ответов, и я собираюсь разорвать мои волосы, поскольку ничего не работало до сих пор, проблема в том, что, когда я пытаюсь скомпилировать проекты, он говорит, что не может открыть файл inlcude "freeglut_static.lib", а также иногда выдавал это предупреждение с "glut32.lib". Шаги, которые я предпринял до сих пор Я загрузил бесплатный перегруз с sourceforge и загрузил исходный перегруз с другого сайта. Затем я взял все файлы .h (файлы заголовков), .lib (файлы библиотек) и (.dll) и поместил их в эти каталоги. Поместите freeglut.h в: 'C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL\' (примечание: вам нужно будет создать папку GL) Поместите freeglut_ext.h в: 'C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL\' Поместите файл freeglut_std.h в: 'C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL\' Поместите glut.h в: 'C:\Program Fil es\Microsoft Visual Studio 9.0\VC\include\GL\' Поместите glut32.lib в: 'C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\' Поместите freeglut.lib в: 'C:\Program Files\ Microsoft Visual Studio 9.0\VC\lib\' Поместите freeglut.dll в: 'C:\WINDOWS\system32\' "SysWOW64" для 64-битной Vista Поместите glut32.dll в: 'C:\WINDOWS\system32\' "SysWOW64" для 64-битная Vista книга также включала файл .lib с именем freeglut_static, который я добавил в ту же папку, что и другие файлы lib выше. Затем я перешел в Visual Studio в ИНСТРУМЕНТЫ-> ОПЦИИ и установил пути для файлов Include и файлов библиотеки, например C :\Program Files\Microsoft Visual Studio 9.0\VC\include\GL C:\Program Files\Microsoft Visual Studio 9.0\VC\lib Затем я перешел к проекту- > свойства и перешел к включению компоновщика и установил дополнительные зависимости, которые источник код из книги находится в режиме выпуска и уже добавил дополнительную зависимость, например freeglut_static.lib После всего этого ничего не работало, поэтому я даже пытался добавить другие дополнительные зависимости. такие как opengl32.lib glu32.lib freeglut.lib glut.lib и т. д. и все еще ничего, кто-нибудь, пожалуйста, помогите, мне пока нравится opengl. некоторые вещи определенно кажутся проще, чем DirectX, за исключением того, что вам нужно делать все это вручную, тогда как DirectX я просто установил SDK и включил пути, и все было хорошо.
Вы не должны так вмешиваться в свою файловую систему. Вас обманул ленивый преподаватель ;D
Вы можете просто распаковать архив по произвольному пути, например C:\lib_folder\freeglut-2.6.0 и внесите изменения в среду Visual Studio или настройки проекта.
После сборки freeglut у вас должны быть папки C:\lib_folder\freeglut-2.6.0\Debug\ и C:\lib_folder\freeglut-2.6.0\DebugStatic
В Project -> Properties -> Configuration Свойства
-> C/C++ -> Общие
+ Дополнительные каталоги включения: добавить "C:\lib_folder\freeglut-2.6.0\include"
-> Компоновщик -> Общие
+ Дополнительные каталоги библиотек: добавьте «C:\lib_folder\freeglut-2.6.0\Debug» или «C:\lib_folder\freeglut-2.6.0\DebugStatic»
Вы можете удалить любую ссылку на перенасыщение из Linker/Input/Additional Dependencies, потому что freeglut использует прагма-связывание. см. freeglut_std.h
Если вы хотите использовать freeglut_static, вы можете определить FREEGLUT_LIB_PRAGMAS в C/C++ -> Препроцессор -> Определения препроцессора. В противном случае вам нужно скопировать freeglut.dll в папку проекта или, что еще лучше, создать и добавить C:\lib_folder\bin\ в переменную PATH.
В этом посте рассказывается, как настроить поддержку OpenGL, GLEW и FreeGLUT в Visual C++, чтобы правильно скомпилировать примеры. Изначально я думал поместить это в приложение после того, как все главы будут пройдены, но сейчас это необходимо, поэтому вот чрезвычайно подробное пошаговое объяснение:
Я предполагаю, что у вас установлена Visual Studio или, по крайней мере, Visual C++ Express, который вы можете получить бесплатно прямо здесь, а также установите Windows SDK, если у вас есть версия Visual C++ Express, которую вы можете получить здесь.
Шаг 1. Получите библиотеки
1.) Загрузите бинарную версию FreeGLUT с этого веб-сайта, убедитесь, что версия 2.6.0 или выше.
2.) Загрузите последнюю двоичную версию GLEW с их сайта, обязательно загрузите версию с пометкой Windows 32-bit.
Шаг 2. Скопируйте библиотеки
Распакуйте файлы, которые вы только что скачали, и откройте папку для FreeGLUT:
Откройте другое окно проводника и введите %PROGRAMFILES% в адресной строке или %PROGRAMFILES(X86)%, только если вы используете 64-разрядную систему. Найдите вложенную папку Microsoft SDK\Windows\(самая высокая версия):
Скопируйте содержимое из папки lib FreeGLUT в папку Lib Windows SDK.
Скопируйте содержимое из папки include\GL FreeGLUT в папку Include\gl Windows SDK.
Теперь в окне проводника, указывающем на местоположение FreeGLUT, перейдите к месту, где вы распаковали GLEW:
Скопируйте содержимое из папки lib GLEW в папку Lib Windows SDK.
Скопируйте содержимое из папки include\GL GLEW в папку Include\gl Windows SDK.
Шаг 3. Создание проекта
Следующим шагом является настройка проекта Visual C++, поэтому запустите Visual C++ Express или Visual Studio и в строке меню выберите Файл -> Создать -> Проект. и щелкните заголовок Visual C++:
Убедитесь, что выбран вариант Консольное приложение Win32, введите имя проекта и нажмите кнопку ОК. Появится следующий экран:
Нажмите «Далее», но не нажимайте кнопку «Готово», пока не установите флажок «Пустой проект» и ваши параметры не будут выглядеть точно так:
Шаг 4. Добавление исходного файла
Теперь, когда у вас настроен пустой проект, нам нужно добавить исходный файл, который мы назовем main.c в этом руководстве. Щелкните проект правой кнопкой мыши, перейдите к пункту «Добавить» и нажмите «Новый элемент». :
Из списка выберите вариант Файл C++ (.cpp) и измените его имя на main.c (обратите внимание на изменение с .cpp на c):
Важно иметь этот файл в своем проекте до того, как вы войдете в экран настроек, поскольку некоторые настройки не будут отображаться на экране, если не будет доступен хотя бы один исходный файл. После нажатия кнопки «Добавить» новый файл должен появиться в обозревателе решений и открыться в текстовом редакторе:
Шаг 5: Настройки проекта (компилятор)
Снова щелкните правой кнопкой мыши свой проект в обозревателе решений и выберите "Свойства" в контекстном меню:
ВАЖНО: прежде чем настраивать какие-либо параметры, убедитесь, что в раскрывающемся списке «Конфигурация» выбрано значение «Все конфигурации»:
Первое изменение, которое мы собираемся внести, находится на странице общих свойств под заголовком Свойства конфигурации. на странице свойств измените параметр «Набор символов» в разделе «Значения проекта по умолчанию» на «Не задано» (см. выделенный снимок экрана):
Затем перейдите на страницу свойств C/C++, щелкните подстраницу «Общие» и измените параметр «Уровень предупреждения» на «Уровень 4» (/W4), а для параметра «Обрабатывать предупреждения как ошибки» установите значение «Да» (/WX) (см. скриншот):
Затем перейдите на подстраницу «Препроцессор», разверните раскрывающийся список рядом с параметром «Определения препроцессора» и нажмите «Изменить». . На появившемся экране вставьте новую строку вверху списка параметров и добавьте _CRT_SECURE_NO_WARNINGS, чтобы ваш список выглядел так:
ВАЖНО: Нажмите кнопку OK и перейдите на дополнительную страницу. Измените параметр «Компилировать как» на «Компилировать как код C» (/TC) (см. выделенный снимок экрана):
Шаг 6. Настройки проекта (компоновщик)
Перейдите на страницу свойств компоновщика и щелкните подстраницу ввода. Разверните раскрывающийся список рядом с опцией «Дополнительные зависимости» и нажмите «Изменить». . В окне добавьте glew32.lib, за которым следует новая строка, и freeglut.lib, чтобы ваш список выглядел так:
Нажмите кнопку "ОК", а когда вы вернетесь на экран настроек, также нажмите кнопку "ОК", чтобы сохранить настройки.
Шаг 7. Компиляция/запуск проекта
Теперь пришло время протестировать вашу установку, так что возьмите исходный код из одной из глав (я предлагаю главу 1 для простоты) и вставьте его в main.c:
Перейдите в главное меню, нажмите "Сборка", нажмите "Создать решение", и ваша сборка должна завершиться успешно без каких-либо предупреждений или ошибок:
Следующий шаг — не отладка, а копирование дополнительных файлов в выходную папку вашего проекта. Итак, откройте окно проводника и укажите его на расположение выходных данных вашего проекта, которым на данный момент должна быть папка Debug в корневой папке решения. Вы должны увидеть что-то похожее на это:
Откройте другое окно Проводника в место, где вы распаковали GLEW, и скопируйте glew32.dll из папки bin в выходную папку вашего проекта. Теперь перейдите в окне проводника к месту, где вы распаковали FreeGLUT, и скопируйте файл freeglut.dll из этой папки в выходную папку вашего проекта, которая теперь должна выглядеть следующим образом:
Теперь вы сможете компилировать, отлаживать и запускать вашу программу без предупреждений и ошибок:
Заключительные мысли
Конечно, это один из многих способов создания проекта, но он должен указать вам правильное направление.
Что мне нравится делать для определенных проектов, так это включать библиотеки DLL как часть моего решения в папку решения и копировать их после успешной сборки с помощью пользовательского шага после сборки.
Более простой способ, не требующий копирования библиотек, – самостоятельно скомпилировать библиотеки и включить их в решение в качестве проекта статической библиотеки Visual C++, а проекты OpenGL настроить так, чтобы они зависели от вывода (порядка сборки). Это увеличивает размер вашего решения, но возможность настраивать исходный код и контролировать то, что находится внутри скомпилированного двоичного файла, бесценно.
Если у вас есть замечания, вопросы или опасения, опубликуйте их в разделе комментариев ниже.
ваша программа уже запущена или загружена в отладчик, и
ваши пути к библиотекам неверны или не заключены в двойные кавычки.
Есть много других возможных причин этой ошибки. Чтобы сузить их, сначала проверьте, что это за файл filename. Затем используйте следующие разделы, чтобы найти и устранить конкретную проблему.
Не удается открыть ваше приложение или его файл .pdb
Ваше приложение запущено или загружено в отладчик
Если имя_файла – это имя вашего исполняемого файла или связанного файла .pdb, проверьте, запущено ли уже ваше приложение. Затем проверьте, загружен ли он в отладчике. Чтобы устранить эту проблему, остановите программу и выгрузите ее из отладчика перед повторной сборкой. Если приложение открыто в другой программе, например в редакторе ресурсов, закройте его. Если ваша программа не отвечает, вам может потребоваться использовать диспетчер задач, чтобы завершить процесс. Вам также может потребоваться закрыть и перезапустить Visual Studio.
Ваше приложение заблокировано антивирусной проверкой
Антивирусные программы часто временно блокируют доступ к вновь созданным файлам, особенно к исполняемым файлам .exe и .dll. Чтобы решить эту проблему, попробуйте исключить каталоги сборки вашего проекта из антивирусного сканера.
Не удается открыть файл библиотеки Microsoft
Библиотеки Windows, такие как kernel32.lib
Если файл, который не удается открыть, является одним из стандартных файлов библиотеки, предоставляемых Microsoft, например kernel32.lib, возможно, возникла ошибка конфигурации проекта или ошибка установки. Убедитесь, что Windows SDK установлен.Если для вашего проекта требуются другие библиотеки Microsoft, например MFC, убедитесь, что компоненты MFC также были установлены установщиком Visual Studio. Вы можете запустить программу установки еще раз, чтобы добавить дополнительные компоненты в любое время. Дополнительные сведения см. в разделе Изменение Visual Studio. Используйте вкладку Отдельные компоненты в установщике, чтобы выбрать определенные библиотеки и SDK.
Версионные библиотеки vcruntime
Если в сообщении об ошибке указана версия библиотеки Microsoft, например msvcr120.lib, набор инструментов платформы для этой версии компилятора может быть не установлен. Чтобы устранить эту проблему, у вас есть два варианта: обновить проект, чтобы использовать текущий набор инструментов платформы, или установить старый набор инструментов и построить проект без изменений. Дополнительную информацию см. в статьях Обновление проектов из более ранних версий Visual C++ и Использование встроенного мультитаргетинга в Visual Studio для создания старых проектов.
Продажные, отладочные или платформенные библиотеки
Эта ошибка может возникнуть при первой сборке для новой целевой платформы или конфигурации, например Retail или ARM64. В среде IDE убедитесь, что установлены набор инструментов платформы и версия Windows SDK, указанные на странице общих свойств. Также убедитесь, что необходимые библиотеки доступны в каталогах библиотек, указанных на странице свойств каталогов VC++. Проверьте свойства каждой конфигурации, например Debug, Retail, x86 или ARM64. Если одна сборка работает, а другая нет, сравните настройки для обеих. Установите все недостающие необходимые инструменты и библиотеки.
Библиотека vccorlib.lib
Для универсальных приложений или компонентов Windows (UWP) не существует библиотек, защищенных от Spectre. Если сообщение об ошибке включает vccorlib.lib, возможно, вы включили /Qspectre в проекте UWP. Отключите параметр компилятора /Qspectre, чтобы устранить эту проблему. В Visual Studio измените свойство Spectre Mitigation. Его можно найти на странице C/C++ > Генерация кода диалогового окна Страницы свойств проекта.
Библиотеки в проектах из Интернета или других источников
Если вы создаете проект, скопированный с другого компьютера, места установки библиотеки могут отличаться. Для сборок из командной строки убедитесь, что переменная среды LIB и пути к библиотекам заданы правильно для сборки. В Visual Studio вы можете просматривать и редактировать текущие пути к библиотекам, установленные на страницах свойств вашего проекта. На странице «Каталоги VC++» выберите раскрывающийся список для свойства «Каталоги библиотек», затем выберите «Изменить». В разделе «Оценочное значение» диалогового окна «Каталоги библиотек» перечислены текущие пути поиска файлов библиотек. Обновите эти пути, чтобы они указывали на ваши локальные библиотеки.
Обновлены библиотеки Windows SDK
Эта ошибка может возникнуть, если путь Visual Studio к Windows SDK устарел. Это может произойти, если вы устанавливаете новый Windows SDK независимо от установщика Visual Studio. Чтобы исправить это в среде IDE, обновите пути, указанные на странице свойств каталогов VC++. Установите версию в пути, соответствующую новому SDK. Если вы используете командную строку разработчика, обновите пакетный файл, который инициализирует переменные среды, указав новые пути SDK. Этой проблемы можно избежать, используя установщик Visual Studio для установки обновленных SDK.
Не удается открыть файл сторонней библиотеки
Есть несколько распространенных причин этой проблемы:
Путь к файлу библиотеки может быть неправильным или не заключенным в двойные кавычки. Или, возможно, вы не указали его компоновщику.
Возможно, вы установили 32-разрядную версию библиотеки, но собираете ее для 64-разрядной версии или наоборот.
Библиотека может иметь зависимости от других библиотек, которые не установлены.
Чтобы устранить проблему с путем для сборок из командной строки, убедитесь, что установлена переменная среды LIB. Убедитесь, что он включает пути для всех используемых вами библиотек и для каждой конфигурации, которую вы создаете. В среде IDE пути к библиотекам задаются свойством Каталоги VC++ > Каталоги библиотек. Убедитесь, что здесь перечислены все каталоги, содержащие нужные вам библиотеки, для каждой создаваемой вами конфигурации.
Возможно, вам потребуется указать каталог библиотеки, который переопределяет стандартный каталог библиотеки. В командной строке используйте параметр /LIBPATH. В среде IDE используйте свойство «Дополнительные каталоги библиотек» на странице свойств «Свойства конфигурации» > «Компоновщик» > «Общие» для вашего проекта.
Убедитесь, что вы установили все версии библиотеки, необходимые для создаваемых вами конфигураций. Рассмотрите возможность использования утилиты управления пакетами vcpkg для автоматизации установки и настройки многих распространенных библиотек. Когда есть возможность, лучше всего создавать собственные копии сторонних библиотек. Тогда у вас наверняка будут все локальные зависимости библиотек, созданные для тех же конфигураций, что и ваш проект.
Не удается открыть файл, созданный вашим проектом
Эта ошибка может появиться, если имя_файла еще не существует, когда компоновщик пытается получить к нему доступ.Это может случиться, когда один проект зависит от другого в решении, но проекты строятся в неправильном порядке. Чтобы устранить эту проблему, убедитесь, что ссылки на ваш проект установлены в проекте, который использует файл. Затем отсутствующий файл создается до того, как он потребуется. Дополнительные сведения см. в разделах Добавление ссылок в проекты Visual Studio C++ и Управление ссылками в проекте.
Не удается открыть файл 'C:\Program.obj'
Если вы видите имя файла C:\Program.obj в сообщении об ошибке, заключите пути к библиотеке в двойные кавычки. Эта ошибка возникает, когда компоновщику передается развернутый путь, начинающийся с C:\Program Files. Развернутые пути также могут вызывать аналогичные ошибки. Как правило, они показывают неожиданный файл .obj в корневом каталоге вашего диска.
Чтобы устранить эту проблему для сборок из командной строки, проверьте параметры параметра /LIBPATH. Также проверьте пути, указанные в переменной среды LIB, и пути, указанные в командной строке. Обязательно заключайте в двойные кавычки все пути, содержащие пробелы.
Чтобы устранить эту проблему в среде IDE, при необходимости добавьте двойные кавычки к следующим свойствам вашего проекта:
Свойство Library Directorys на странице свойств Configuration Properties > VC++ Directorys,
Свойство «Дополнительные каталоги библиотек» на странице свойств «Свойства конфигурации» > «Компоновщик» > «Общие»,
Свойство Дополнительные зависимости на странице Свойства конфигурации > Компоновщик > Входное свойство.
Другие распространенные проблемы
Проблемы с путем или именем файла
Параллельная синхронизация сборки
Если вы используете параллельную сборку, Visual Studio может заблокировать файл в другом потоке. Чтобы устранить эту проблему, убедитесь, что один и тот же объект кода или библиотека не встроены в несколько проектов. Используйте зависимости сборки или ссылки на проект, чтобы подобрать встроенные двоичные файлы в свой проект.
Дополнительные зависимости, указанные в IDE
При непосредственном указании отдельных библиотек в свойстве Дополнительные зависимости используйте пробелы для разделения имен библиотек. Не используйте запятые или точки с запятой. Если вы используете элемент меню «Правка», чтобы открыть диалоговое окно «Дополнительные зависимости», используйте символы новой строки для разделения имен, а не запятые, точки с запятой или пробелы. Также используйте символы новой строки при указании путей к библиотекам в диалоговых окнах «Каталоги библиотек» и «Дополнительные каталоги библиотек».
Слишком длинные пути
Эта ошибка может появиться, если длина пути filename превышает 260 символов. При необходимости измените структуру каталогов или сократите имена папок и файлов, чтобы сократить пути.
Слишком большие файлы
Эта ошибка может возникнуть из-за слишком большого размера файла. Библиотеки или объектные файлы размером более гигабайта могут вызвать проблемы для 32-разрядного компоновщика. Возможное решение этой проблемы — использование 64-разрядного набора инструментов. Дополнительные сведения о том, как использовать 64-разрядный набор инструментов в командной строке, см. в разделе Практическое руководство. Включение 64-разрядного набора инструментов Visual C++ в командной строке. Сведения о том, как использовать 64-разрядный набор инструментов в среде IDE, см. в разделе Использование MSBuild с 64-разрядным компилятором и инструментами. Также см. этот пост о переполнении стека: Как заставить Visual Studio использовать нативную цепочку инструментов amd64.
Неправильные права доступа к файлу
Эта ошибка может возникнуть, если у вас недостаточно прав для доступа к файлу имя_файла. Это может произойти, если вы используете обычную учетную запись пользователя для доступа к файлам библиотеки в защищенных системных каталогах. Или, если вы используете файлы, скопированные у других пользователей, у которых все еще установлены исходные разрешения. Чтобы устранить эту проблему, переместите файл в доступный для записи каталог проекта. Если перемещенный файл имеет недоступные разрешения, запустите команду takeown.exe в командном окне администратора, чтобы стать владельцем файла.
Недостаточно места на диске
Эта ошибка может возникнуть, если у вас недостаточно места на диске. Компоновщик использует временные файлы в нескольких случаях. Даже если у вас достаточно места на диске, большая ссылка может истощить или фрагментировать доступное место на диске. Рассмотрите возможность использования параметра /OPT (оптимизация); выполнение транзитивного исключения COMDAT считывает все объектные файлы несколько раз.
Проблемы с переменной среды TMP
Если имя файла называется LNKnnn, это имя файла, сгенерированное компоновщиком для временного файла. Каталог, указанный в переменной среды TMP, может не существовать. Или для переменной среды TMP может быть указано несколько каталогов. Для переменной среды TMP должен быть указан только один путь к каталогу.
Помогите, моей проблемы здесь нет!
Если ни одна из перечисленных здесь проблем не применима, вы можете воспользоваться средствами обратной связи в Visual Studio. В среде IDE перейдите в строку меню и выберите «Справка» > «Отправить отзыв» > «Сообщить о проблеме». Или отправьте предложение, выбрав «Справка» > «Отправить отзыв» > «Отправить предложение». Вы также можете задать вопросы на сайте вопросов и ответов Microsoft Docs и на веб-сайте сообщества разработчиков Visual Studio C++.Используйте эти сайты для поиска ответов на вопросы и обращения за помощью. Дополнительные сведения см. в разделе Как сообщить о проблеме с набором инструментов Visual C++ или в документации.
Если вы обнаружили новый способ решения этой проблемы, который мы должны добавить в эту статью, сообщите нам об этом. Вы можете отправить нам отзыв, используя кнопку ниже на этой странице. Используйте его, чтобы создать новую задачу в нашем репозитории GitHub с документацией по C++. Спасибо!
Читайте также: