Не удается открыть входной файл freetype lib

Обновлено: 05.07.2024

Qt creator работал хорошо, но внезапно показывает проблему error: LNK1181: cannot open input file 'debug\main.obj' ,
Эта проблема проявляется всегда с любым типом приложения либо GUI или же console ,
Я удалил Qt и установил снова, но проблема все еще существует.
Я ничего не делал в настройках создателя Qt, оставил настройки по умолчанию.

Следующее приложение простое консольное приложение возникает та же проблема в нем.

Заметка: Я использую Qt 5.1.1 для 32-битной Windows (VS 2010, OpenGL).

Решение

Эта проблема также возникает, если путь вашего проекта (имя любой папки) содержит пробелы.

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

Хорошо, у нас наконец-то есть реальный ответ на эту обобщенную проблему, а не на опечатку ОП, если это тоже не разблокирует вас.

Актуальная проблема (перспектива «черного ящика»): автоматически заполненные разрывы записей «Build directory» для проектов внутри пустых каталогов. Qt Creator фактически запрещает вам и запрещает использовать пробелы при создании новых проектов. Вы все еще можете закрыть новый проект и переименовать его, чтобы добавить пробел, и Qt Creator изящно с этим справится. Если вы скопируете каталог сборки, даже с пробелами в нем, и вставите его в поле, заменяющее сломанный автоматически сгенерированный путь (у меня были относительные пути), тогда JOM начнет работать правильно, так как QMake не генерирует никаких ошибок. Я не могу говорить за другие инструменты Make.

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

Проблема была решена.

Проблема была, когда создаешь новый проект ( GUI или же Console ), все исходные файлы, принадлежащие этому новому проекту, имеют неправильное расширение, например: main.cp , но правильное расширение должно быть ex: main.cpp ,
И при изменении всех исходных файлов расширение от .cp в .cpp работал нормально.

введите описание изображения здесь

Или измените расширение исходного файла по умолчанию с [Инструменты -> Опция -> C ++].

хмм Если я правильно помню, когда сталкивался с подобными проблемами, используя вашу аналогичную настройку (QtCreator и Windows) под управлением QMAKE & Перестройка проекта снова помогла мне решить эту ошибку компоновщика.

Бежать Clean а также qMake а также rebuild ,
Мне нравится эта проблема, и это помогло мне.

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

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

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

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

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

Приложение выполняется или загружается в отладчике

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

Приложение заблокировано антивирусным сканированием

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

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

Windows библиотеки, например kernel32. lib

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

Библиотеки vcruntime с отслеживанием версий

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

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

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

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

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

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

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

Существует несколько распространенных причин этой проблемы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Справка, моей проблемы нет в списке!

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

Чтобы устранить эту проблему, убедитесь, что дескриптор файла filename не заблокирован и у вас есть разрешение на запись в данный файл. Если это исполняемый файл, убедитесь, что он не запущен на исполнение.

вы можете использовать служебные программы Windows SysInternals или обозреватель процессов , чтобы определить, на каком процессе выполняется блокировка файла filename . С помощью программы Process Explorer можно также снимать блокировку дескрипторов открытых файлов. Сведения об использовании этих программ см. в поставляемых с ними файлах справки.

Если файл заблокирован антивирусной программой, для устранения проблемы исключите выходные каталоги сборки из автоматической проверки антивирусной программой. Программы проверки на вирусы часто запускаются при создании в системе новых файлов и блокируют эти файлы на время проверки. Сведения о порядке отключения проверки определенных каталогов см. в документации антивирусной программы.

Если файл заблокирован службой индексирования поиска, для устранения этой проблемы отключите автоматическое индексирование выходных каталогов сборки. Дополнительные сведения см. в документации службы индексирования. чтобы изменить службу индексирования поиска Windows, используйте параметры индексирования на панели управления Windows. дополнительные сведения см. в разделе индексирование поиска в Windows 10: часто задаваемые вопросы.

Если процесс сборки не может перезаписать исполняемый файл, возможно, он заблокирован программой Проводник. Если служба взаимодействия с приложением была отключена, проводник может удерживать блокировку исполняемого файла в течение длительного времени. Чтобы устранить эту проблему, запустите Services. msc и откройте диалоговое окно " свойства " для службы " взаимодействие приложений ". Измените Тип запуска с " отключено " на " вручную".


ок, удали пакеты, которые требуют media-libs/freetype[harfbuzz] или media-libs/harfbuzz[freetype] (можно даже через -C, игнорируя зависимости), затем поставь freetype и harfbuzz, затем поставь обратно эти пакеты.


сработает только если в системе уже есть все зависимости времени сборки для freetype. возможно придётся установить их руками сперва.

а вообще, не очень понятно, как такая ситуация вообще могла произойти. это давно не обновлённая система?

а вообще, не очень понятно, как такая ситуация вообще могла произойти

Доброе утро. С разморозкой.


Правильный ответ Pinkbyte уже озвучил — установить один из компонентов порочного круга с --oneshot и --nodeps , предварительно поглядев ( equery d ) и разрешив вручную его зависимости. Либо установить без флага, затем пересобрать с флагом.

Это не сработало


error: bzip2 support requested but library not found

что непонятно в этой строчке?


Я об этом отлично знаю. Но у него в системе судя по всему уже стоят оба пакета - и freetype и harfbuzz. И есть пакеты, которые требуют их по зависимости. Иначе сработало бы одно из двух USE=-truetype emerge -1 media-libs/harfbuzz или USE=-harfbuzz emerge -1 freetype .


вопрос к ТС: когда последний раз обновлял мир?


Как ты будешь пользоваться wine, если у тебя ещё не установлен freetype? Это значит, что у тебя даже не установлены тулкиты, и, возможно, иксы.

Там их много таких. Мне, например, нравится Package libpng was not found in the pkg-config search path.

Напомню — если в multilib ставится пакет с abi_x86_32 , его зависимости тоже должны быть собраны под x86.

Не заметил ее сразу.

вопрос к ТС: когда последний раз обновлял мир?

Пару дней назад, когда установил генту.


А, точно. Он же вайн ставит. А вайн потащит тонну этих abi_x86_32 . Тогда понятно как такая ситуация возникла.


И почему у вайна до сих пор нет варианта сборки amd64-only? Понятно, что в таком режиме он не сможет запускать 32-битные вендовые приложения, но не всем это нужно.

eternal_sorrow ★★★★★ ( 20.07.21 22:22:59 )
Последнее исправление: eternal_sorrow 20.07.21 22:23:31 (всего исправлений: 2)


Всё, разобрался. Установил bzip2 и libpng, обновил мир, а дальше всё понятно стало.

Спасибо всем за помощь. 🐧🐧🐧🐧

Разве нету? Никогда не приходило в голову такое извращение.

Проверять лениво, но на USE="-abi_x86_32" emerge -pv wine-staging virtual/wine вроде не ругается.


Update: тред не читай, сразу отвечай. ТС, если ты ставишь wine с 32-битной поддержкой, убедись что ты не забыл флаги для 32-битных библиотек проставить.

Ну или, если не боишься устроить глобальное потепление и засрать себе винт:

Update 2: тред не читай, сразу отвечай, вторая итерация: главное - вовремя дать совет, особенно когда ТС уже разобрался :-)

Pinkbyte ★★★★★ ( 21.07.21 01:28:32 )
Последнее исправление: Pinkbyte 21.07.21 01:32:16 (всего исправлений: 2)



внутри два файла zz-autounmask и kde-plasma-settings

Я не ставил флаги, просто вчера установилось это. Поспешил, да

Хочу чтобы была поддержка 32 и 64, почему это засрёт винт?

pinux ( 21.07.21 19:52:22 )
Последнее исправление: pinux 21.07.21 20:08:18 (всего исправлений: 2)

USE="ABI_X86=64" emerge -pv wine-staging virtual/wine

То есть это фул для амд64 с 32-битной поддержкой ?

Хочу чтобы была поддержка 32 и 64, почему это засрёт винт?

Можно в USE отдельно поставить abi_x86_32 для wine (предполагаю, основная система у тебя 64–битная). Тогда wine потянет зависимости — им тоже нужен будет такой флаг. Установка с ним означает, что компилируются и устанавливаются в систему две версии пакета — 32– и 64–битная. Если у кого–то из зависимостей флаг не установлен — портаж об этом достаточно явно ругается и требует прописать.

Есть ещё вариант для особо ленивых извращенцев — установить в make.conf ABI_X86="32 64" для всей системы глобально. Это означает, что каждый пакет будет компилироваться дважды (т.е. требуется в два раза больше времени на компиляцию и места на диске). Минусы такого подхода очевидны. Плюс — не надо вести отдельный список пакетов для которых требуются 32-битные версии.


ОМГ что это? Просто ABI_X86=64 . И поддержки 32 бит не будет.

Понял. У меня 64–битная, да.

Нужно устанавливать с USE="abi_x86_32" . И всё, что 32бит потребует добавить тоже этот флаг.

Читайте также: