Ошибка LNK1181: невозможно открыть входной файл при компиляции как .LIB

У меня есть библиотека, которая использует Intel Composer XE 2013, и я хотел бы скомпилировать ее как .lib, так как собираюсь использовать ее с другим проектом (по умолчанию она компилируется как application / EXE). Тем не менее, когда я устанавливаю тип конфигурации в Project Defaults в Configuration Manager в Visual Studio 2012, я получаю сообщение об ошибке «LNK1181: не удается открыть входной файл». Странно, что файл, который он ищет, не имеет конца файла. Проект содержит как C, C ++, так и ASM-код. У кого-нибудь есть опыт с таким поведением?

2

Решение

Некоторые распространенные причины ошибки LNK1181:

  • имя файла указывается как дополнительная зависимость от компоновщика
    строка, но файл не существует.
  • Оператор A / LIBPATH, который определяет каталог, содержащий имя файла
    пропал, отсутствует.

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

Используйте параметр / LIBPATH, чтобы переопределить путь к библиотеке среды. Компоновщик сначала выполняет поиск по пути, указанному в этом параметре, а затем выполняет поиск по пути, указанному в переменной среды LIB. Вы можете указать только один каталог для каждого параметра / LIBPATH, который вы вводите. Если вы хотите указать более одного каталога, вы должны указать несколько параметров / LIBPATH. Затем компоновщик будет искать в указанных каталогах по порядку.

Чтобы установить этот параметр компоновщика в среде разработки Visual Studio

  1. Откройте диалоговое окно страниц свойств проекта.
  2. Нажмите на папку Linker.
  3. Нажмите на страницу свойств General.
  4. Измените свойство «Дополнительные каталоги библиотек».

Если это не поможет, вы можете просмотреть эти ссылки:

2

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

Я решил проблему, переименовав файлы .obj без их расширения. Например, он искал имя файла «foo», у меня был «foo.obj», поэтому я переименовал «foo.obj» в «foo».

0

По вопросам рекламы [email protected]