Hi Folks:
Developing win32 bit app on Win 7/64 Ultimate, VS 2010 Pro, C++.
I’ve looked at other threads about LNK1181 errors in these forums. I don’t see anything like this.
I’m building an app that uses an email DLL utility I’ve purchased. Compiles require a library called see32.lib.
When I link, I’m getting:
LNK1181: cannot open input file ‘see32.lib’
Several configurations of the project, and other projects, use this DLL and .lib without any problems. All are 32 bit apps.
Every reference to the lib’s path and name is copied and pasted, so they should be accurate.
I’m using VS’s «Project — <app> Properties… — Linker — General — Additional Library Directories» to browse for the directory that contains the .lib file.
One of the folders is «D:workcommon_release_packsmarshallsoft».
«Project — <app> Properties… — Linker — Input — Additional Dependencies» has a list that includes «see32.lib»
As you can see, there is no blank in the path to the .lib file.
The command line is very long, but includes
/LIBPATH:"D:workcommon_release_packsmarshallsoft" "gdiplus.lib" "comctl32.lib"
I decided to open a command line window and run a dir on the .lib’s path and name:
C:Userslarryl>dir D:workcommon_release_packsmarshallsoftsee32.lib Volume in drive D is big_backup Volume Serial Number is F841-446C Directory of D:workcommon_release_packsmarshallsoft 04/04/2012 02:42 PM 34,040 see32.lib 1 File(s) 34,040 bytes 0 Dir(s) 1,376,328,060,928 bytes free C:Userslarryl>
The command line window had no problem finding the .lib file.
As stated, other projects of mine seem to have no problem linking this utility, with these same entries in the project’s property’s linker specifies.
Is there something else I need to specify in the project’s properties?
Thanks
Larry
-
Edited by
Monday, June 4, 2012 7:08 PM
Problem
«LNK1181:cannot open input file…» error when including external libraries
Resolving The Problem
SYMPTOM
When building a Rose RealTime executable, the following error is encountered during the linking phase of the build:
LINK : fatal error LNK1181: cannot open input file "xxx.lib" (where "xxx" is the external library name).
CAUSE
The aforementioned error occurs when including a library in a Rose RealTime component and the compiler is unable to locate the library.
RESOLUTION
To resolve this problem, ensure that the paths to any external libraries to be included in your Rose RealTime component are defined in the «UserLibraries» field of the C++ Executable tab of the Component Specification. We recommend using virtual path maps to do this.
To define a virtual path map in Rose RealTime:
1. Click File > Edit Path Map to open the Virtual Path Map dialog.
2. Type the name of the new virtual path in the Symbol field (for example, «EXT_LIB»), but omit the leading «$» character.
3. In the Actual Path field, enter the location of the external libraries to be included.
4. Click Add. A new virtual path map symbol, $EXT_LIB, has been defined.
To use a virtual path map to include an external library in a Rose RealTime component:
1. Open the Component Specification and go to the C++ Executable tab.
2. In the UserLibraries field, use the pre-defined virtual path map symbol followed by the library name to add the external library to the component. For example, using the virtual path map defined above, the inclusion statement would look like this: $EXT_LIB/mylib.lib (where «mylib» is the actual library name).
3. Apply the change and Save your model.
For more information on using virtual path maps, please refer to the following section in the Rose RealTime on-line help:
Team Development > Storage of Model Data > Virtual Path Maps
Note: If the UserLibraries text above is required for all components in a project, then a project specific «Property Set» can be created. See Toolset Guide > Customizing the Toolset > Managing Model Properties.
[{«Product»:{«code»:»SSSHKL»,»label»:»Rational Rose RealTime»},»Business Unit»:{«code»:»BU053″,»label»:»Cloud & Data Platform»},»Component»:»—«,»Platform»:[{«code»:»PF033″,»label»:»Windows»}],»Version»:»2002.05.20.468.000″,»Edition»:»»,»Line of Business»:{«code»:»LOB45″,»label»:»Automation»}}]
186 / 61 / 4 Регистрация: 29.04.2011 Сообщений: 641 |
|
1 |
|
Не открывает либы02.09.2011, 19:25. Показов 7018. Ответов 9
такая ситуация: Сейчас у меня другие проблемы, а именно при запуске одного проекта в режиме реалайс он пишет ошибку: 1>LINK : fatal error LNK1181: cannot open input file ‘kernel32.lib’ (при запуске в режими дебаг все проходит нормально) а при запуске другого проекта в режиме дебаг он пишет 1>LINK : fatal error LNK1104: cannot open file ‘msvcprtd.lib’ (запуск в реалайс проходит успешно) как решить проблему и с чем это связанно?
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
02.09.2011, 19:25 |
Ответы с готовыми решениями: Дополнительные либы Proteus либы Не подключаются либы в CMake Кроссплатформенные либы на ubuntu 9 |
Заблокирован |
|
03.09.2011, 07:56 |
2 |
как решить проблему и с чем это связанно? Глянуть настройки компилятора для релиз-версии…
0 |
186 / 61 / 4 Регистрация: 29.04.2011 Сообщений: 641 |
|
03.09.2011, 12:47 [ТС] |
3 |
можно поподробнее пожайлуста( могу отправить скриншот настроек, только скажите каких)
0 |
Заблокирован |
|
03.09.2011, 15:01 |
4 |
можно поподробнее пожайлуста( могу отправить скриншот настроек, только скажите каких) Отправьте. Конкретно интересует что-то вроде этого: Как видите, у меня все эти либы прикручиваются. Добавлено через 9 минут Свойства проекта -> компоновщик -> ввод -> дополнительные зависимости -> … После чего откроется окошко типа вот этого: Там смотришь — нету нужной либы в списке? Ну значит тупо вбиваем её, и жмем «ок»
0 |
186 / 61 / 4 Регистрация: 29.04.2011 Сообщений: 641 |
|
03.09.2011, 17:39 [ТС] |
5 |
спасибо.
0 |
Заблокирован |
|
03.09.2011, 18:47 |
6 |
хм странно, вроде все есть(не находило kernel32.lib) Проверьте, если этот файл физически у вас в системе. Добавлено через 3 минуты А физически она может находится где то в области: Их там несколько разновидностей, этих либ лежать должно)
0 |
186 / 61 / 4 Регистрация: 29.04.2011 Сообщений: 641 |
|
03.09.2011, 21:34 [ТС] |
7 |
правельно у меня там и находиться (C:Program FilesMicrosoft SDKsWindowsv6.0ALib)
0 |
Заблокирован |
|
03.09.2011, 22:09 |
8 |
с путями как дела обстоят?
0 |
186 / 61 / 4 Регистрация: 29.04.2011 Сообщений: 641 |
|
03.09.2011, 22:22 [ТС] |
9 |
физически файлы в системе есть
0 |
Модератор 8759 / 6549 / 887 Регистрация: 14.02.2011 Сообщений: 22,972 |
|
03.09.2011, 22:45 |
10 |
а SDK ставил?
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
03.09.2011, 22:45 |
Помогаю со студенческими работами здесь OpenAl или Qt либы Qt 5.7 OpenGL просит либы
Дисковод LG многие диски не открывает, а те, которые открывает страшно глючат Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 10 |
Я уже некоторое время встречаю странную ошибку в Visual Studio 2010.
У меня есть решение, состоящее из проекта, который компилируется в статическую библиотеку, и другого проекта, который действительно прост, но зависит от этой библиотеки.
Иногда, в последние дни очень часто, после восстановления решения или просто компиляции его с 1-3 измененными исходными файлами, я получаю следующую ошибку:
2>LINK : fatal error LNK1181: cannot open input file 'thelibrary.lib'
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
Где компиляция thelibrary.lib
имела успех без каких-либо ошибок или предупреждений.
Я пробовал очистить решение, но это не всегда работает.
- Что здесь не так?
23 июнь 2011, в 10:42
Поделиться
Источник
14 ответов
В Linker, общие, дополнительные каталоги библиотек, добавьте каталог в DLL или .lib, которые вы включили в Linker, Input.
Это не работает, если вы поместите это в каталоги VС++, каталоги библиотек.
Chris Thorne
25 июнь 2012, в 03:43
Поделиться
Перейдите к:
Project properties -> Linker -> General -> Link Library Dependencies set No.
EkaYuda
29 май 2012, в 13:09
Поделиться
Я вижу только 1 вещи, происходящие здесь:
Вы не установили должным образом зависимости от thelibrary.lib в своем проекте, что означает, что thelibrary.lib построен в неправильном порядке (или в то же время, если у вас более 1 конфигурация сборки CPU, что также может объяснить случайность ошибки), (Вы можете изменить зависимости проекта в: Menu- > Project- > Project Dependencies)
Sasha
23 июнь 2011, в 09:45
Поделиться
Недавно я попал в ту же ошибку. Некоторое копание вызвало это:
http://support.microsoft.com/kb/815645
В принципе, если у вас есть пробелы на пути .lib, это плохо. Не знаю, что с тобой происходит, но кажется разумным.
Исправление: либо 1) поместить ссылку на lib в «кавычки», либо 2) добавить путь lib к вашим библиотечным каталогам (Свойства конфигурации → Каталоги VС++).
Clippy
11 нояб. 2011, в 13:35
Поделиться
У меня была такая же проблема как в VS 2010, так и в VS 2012.
В моей системе была создана первая статическая библиотека, а затем сразу же удалена при запуске основного проекта.
Проблема заключается в общей промежуточной папке для нескольких проектов. Просто назначьте отдельную промежуточную папку для каждого проекта.
Подробнее об этом здесь
alexkr
29 сен. 2013, в 12:46
Поделиться
Я решил это со следующим:
Перейдите в View- > Страницы свойств → Свойства конфигурации → Коннектор → Вход
В дополнительных зависимостях добавьте thelibrary.lib. Не используйте никаких цитат.
user2049230
07 фев. 2013, в 04:52
Поделиться
У меня была аналогичная проблема, так как я получал ошибки LINK1181
в файле .OBJ
, который был частью самого проекта (и во всем проекте было всего 2 файла .cxx).
Сначала я установил проект для создания .EXE
в Visual Studio, а затем в
Property Pages -> Configuration Properties -> General -> Project Defaults -> Configuration Type
, я изменил .EXE на .DLL. Подозревая, что Visual Studio 2008 каким-то образом запуталась, я с самого начала воссоздал все решение с нуля с использованием режима .DLL. После этого проблема исчезла. Я предполагаю, что если вы вручную проведете свой путь через .vcproj и другие связанные файлы, вы сможете выяснить, как исправить ситуацию, не начиная с нуля (но моя программа состояла из двух файлов .cpp, поэтому было легче начать все заново).
user1726157
07 окт. 2012, в 05:29
Поделиться
Для меня проблема была неправильной директорией include
. Я понятия не имею, почему это вызвало ошибку с, казалось бы, отсутствующей библиотекой lib, поскольку каталог include содержит только заголовочные файлы. И каталог библиотеки имел правильный набор путей.
mgttlinger
17 окт. 2014, в 13:43
Поделиться
Я не знаю почему, но изменив ссылку Linker- > Input- > Additional Dependencies из «dxguid.lib» на «C:Program Files (x86)Microsoft DirectX SDK (июнь 2010)Libx86dxguid.lib» (в моем случае) — единственное, что сработало.
Vic
03 дек. 2013, в 08:06
Поделиться
Я сталкиваюсь с тем же вопросом. Для меня это, по-видимому, вызвано наличием двух проектов с тем же именем, один из которых зависит от другого.
Например, у меня есть один проект с именем Foo, который создает Foo.lib. Затем у меня есть еще один проект, который также называется Foo, который создает Foo.exe и ссылки в Foo.lib.
Я просмотрел файловую активность с Монитором процессов. Похоже, что Foo (lib) создается первым — что является правильным, потому что Foo (exe) помечен как зависящий от Foo (lib). Все это прекрасно и успешно строится и помещается в выходной каталог — $(OutDir) $(TargetName) $(TargetExt). Затем Foo (exe) запускается для восстановления. Ну, перестройка — это чистый, за которым следует сборка. Похоже, что «чистый» этап Foo.exe удаляет Foo.lib из выходного каталога. Это также объясняет, почему работает последующая «сборка», которая не удаляет выходные файлы.
Ошибка в VS, я думаю.
К сожалению, у меня нет решения проблемы, так как она включает Rebuild. Обходной путь заключается в том, чтобы вручную очистить Clean, а затем Build.
Nick
25 апр. 2013, в 06:14
Поделиться
У меня была та же проблема. Решил его, указав макрос OBJECTS
, содержащий все объекты компоновщика, например:
OBJECTS = target.exe kernel32.lib mylib.lib (etc)
И затем укажите $(OBJECTS)
в командной строке компоновщика.
Я не использую Visual Studio, хотя, просто nmake и .MAK файл
Martin van Rijen
04 нояб. 2017, в 18:39
Поделиться
Вы также можете исправить проблему пробела в пути, указав путь библиотеки в формате DOS «8.3».
Чтобы получить форму 8.3, выполните (в командной строке):
DIR /AD /X
рекурсивно через каждый уровень каталогов.
Pierre
04 июнь 2016, в 23:16
Поделиться
Возможно, у вас есть проблемы с оборудованием.
У меня была такая же проблема на моей старой системе (процессор AMD 1800 МГц, 1 ГБ оперативной памяти, Windows 7 Ultimate), пока я не изменил 2x 512 МБ ОЗУ на 2x 1 ГБ ОЗУ. С тех пор не было никаких проблем. Также исчезли другие (второстепенные) проблемы. Угадайте, что эти два модуля объемом 512 МБ не очень понравились друг другу, потому что 2x 512 МБ + 1 ГБ или 1x 512 МБ + 2x 1 ГБ тоже не работали.
engf-010
24 июнь 2011, в 09:03
Поделиться
Я создал каталог bin
на уровне project_dir, а затем создал каталог release/debug
внутри папки bin
, который решил проблему для меня.
Ravi Sohal
19 авг. 2013, в 17:48
Поделиться
Ещё вопросы
- 1Как я могу получить текст из контекстного меню?
- 1Получить отдельные объекты списка из списка, используя LinQ
- 1Избегайте внутренних добытчиков / сеттеров — Game
- 0Извлечение средней части URL и добавление его к новой внешней ссылке для отображения в IE8
- 0Поток Oauth 2 для приложения AngularJS
- 1Python — кормить объект списком
- 0Ошибка формулы PHPExcel
- 1Как решить NoClassDefFoundError в сервлете Java?
- 1чтение байтов без использования цикла
- 0Рассчитать сумму каждой строки с помощью jQuery при изменении значения в текстовом поле
- 0MySQL Удалить в подзапросе
- 0Jquery Dialog добавить пользовательский класс для кнопки
- 1Установите pip Python
- 1Pyjnius «не могу найти класс» ошибка
- 1Как я могу создать подкласс для модели и сохранить дополнительные данные?
- 1Моделирование регрессии Python с помощью Pandas Data Reader
- 0PHP: заменить пробелы в конце строки перед вопросом mark_?
- 0Проблема с Multi Transclude в Angular
- 0jQuery — находит CSS в нижней части div при запуске, а не во время анимации при наведении
- 1Проект SonarQube не анализируется профилем JavaScript
- 0Запрос на вставку одной записи (ID) из одной таблицы в другую таблицу
- 0Используйте imagick и php, чтобы создать миниатюру изображения в выпадающем списке
- 1Анимация полноэкранного оверлея SVG
- 0Есть ли в MySQL команда, которая может помочь мне пропускать определенные данные с определенной частотой?
- 1Winforms / Devexpress / Tab Control разделение концерна / Общая раскладка кода
- 0пока цикл не зацикливается на str_pad
- 0Получение значения братьев и сестер с помощью JavaScript
- 1Android эмулятор не запускается при использовании масштаба (Win7 x64)
- 0Ошибки Sendgrid x-smtpapi с «отсутствующим адресом электронной почты»
- 0Как я могу добавить свой JavaScript в мой PHP для каждого цикла?
- 1Метод клонирования Java
- 1Как установить тип календаря Windows в C #
- 0подключение к базе данных WAMP SQL с использованием объекта PHP
- 1Как перевести звонки на голосовую почту в android?
- 1Могу ли я создать макет, используя XML-файл и код в упражнении?
- 1Telerik RadGrid дизайн коррупции
- 0Запретить отправку нескольких форм
- 1Android: количество элементов меню подряд
- 1Редактирование Python 2-мерного массива без цикла for?
- 1Невозможно добавить атрибуты в сообщение проверки
- 0Оператор присваивания
- 0C ++ tron AI застрял в своем собственном следе
- 0компиляция нелокальных файлов с использованием NDK, ошибка компоновщика
- 1Постепенно выцветание поверхности с использованием заливки
- 1Сборщик мусора для Android в Лунном Ландере
- 1Невозможно передать переменную в функцию typewrite в python
- 0Как создать идентификатор заказа, войдя в качестве гостя в Android-корзину приложений
- 1Самый эффективный способ удалить несколько вхождений значения с CouchDB
- 1Получение данных, которые передаются с использованием намерений