неустранимая ошибка LNK1104: не удается открыть файл 'libboost system-vc110-mt-gd-1 51.lib'
кажется, я не могу заставить это работать. Я создал простое консольное приложение (которое зависит от websocket++ библиотека), который нужен Boost библиотеки.. но когда я пытаюсь скомпилировать я получаю:
неустранимая ошибка LNK1104: не удается открыть файл ' libboost_system-vc110-mt-gd-1_51.lib'
тем не менее, я сделал bjam, который создал lib в (boost_root)/stage/libs и я связал путь к библиотекам с компилятором C++/Additionnals includes.
если я посмотрю в (boost_root)/stage/libs файл libboost_system-vc110-mt-gd-1_51.lib не там. Она называется .
есть идеи?
9 ответов:
на C++ → Общие → Дополнительные Каталоги Включения параметр предназначен для перечисления каталогов, в которых компилятор будет искать файлы заголовков.
вы должны сказать компоновщику, где искать библиотеки для ссылки. Чтобы получить доступ к этому параметру, щелкните правой кнопкой мыши имя проекта в Обозреватель
это самый простой способ для любителя, как я, который изучает C++ самостоятельно:
сначала распакуйте библиотеку boost в любой каталог по вашему выбору. Я рекомендую
c:\directory.
- откройте visual C++.
- создать новый проект.
- Правой Кнопкой Мыши на проекте.
- нажмите на собственность.
- нажмите на C / C++.
- нажмите на генерала.
- выберите дополнительно включить библиотека.
- включить назначение библиотеки. например,
c:\boost_1_57_0.- нажмите на заголовок предварительного компилятора.
- Нажмите кнопку Создать / использовать предварительно скомпилированный заголовок.
- Выберите не использовать предварительно скомпилированные заголовки.
затем перейдите в библиотеку ссылок, если у вас возникли проблемы.
- перейти к were извлеченный файл был
c:\boost_1_57_0.- нажать на кнопку
booststrap.bat(не утруждайте себя вводом в командном окне просто подождите и не закрывайте окно, это место, где у меня была моя проблема, которая заняла у меня две недели, чтобы решить. Через некоторое времяbooststrapбудет работать и производить тот же файл, но теперь с двумя разными именами:b2иbjam.- нажать на кнопку
b2и ждать его выполнения.- нажать на кнопку
bjamи ждать его выполнения. Тогда папка будет производить называетсяstage.- Правой Кнопкой Мыши на проекте.
- нажмите на собственность.
- нажмите на компоновщик.
- нажмите на генерала.
- Нажмите кнопку включить дополнительный каталог библиотеки.
- выберите часть библиотеки, например
c:\boost_1_57_0\stage\lib.и вы хорошо идти!
У меня была та же проблема. Это было вызвано тем, что я скомпилировал Boost с Visual C++ 2010(v100), и я попытался использовать библиотеку с Visual Studio 2012 (v110) по ошибке.
Итак, я изменил конфигурации (в Visual Studio 2012), перейдя к свойства проекта ->общие ->С Набором Инструментов и изменить значение от Visual Studio 2012 (v110) до Visual Studio 2010 (v100).
У меня была та же проблема, и моя ошибка заключалась в том, что я установил двоичный boost_1_55_0-msvc-11.0-32.exe для использования с Visual с++ 2010, которая имеет версию твердотельного накопителя V100, если (свойства проекта->ConfiguratioProperties->общие->platformTooset) нет ноутбук-трансформер V110 как Visual с++ 2012. Поэтому я загрузил boost_1_55_0-msvc-10.0-32.exe и теперь все в порядке до сих пор.
еще одно решение:
Я был в тупике, потому что я включал boost_regex-vc120-mt-gd-1_58.lib в моем свойстве Link - >Additional Dependencies, но ссылка продолжала говорить мне, что она не может открыть libboost_regex-vc120-mt-gd-1_58.lib (обратите внимание на префикс lib). Я не указал libboost_regex-vc120-mt-gd-1_58.движение за освобождение.
Я пытался использовать (и построил) динамические библиотеки boost (.DLL), но не был определен макрос BOOST_ALL_DYN_LINK. Видимо, есть намеки в компиляции для включения библиотеки и без BOOST_ALL_DYN_LINK он ищет статическую библиотеку (с префиксом lib), а не динамическую библиотеку (без префикса lib).
в случае, если у вас возникли проблемы с созданием boost или вы предпочитаете этого не делать, альтернативой является загрузка файлов lib из SourceForge. Ссылка приведет вас к папке с архивными файлами lib и dll для версии 1.51. Но, вы должны иметь возможность редактировать ссылку, чтобы указать версию выбора. По-видимому, установщик из BoostPro имеет некоторые проблемы.
У меня была аналогичная проблема при попытке использовать повысить модульное тестирование на Visual Studio 2015 (Community Edition):
фатальная ошибка LNK1104: libboost_unit_test_framework-vc140-mt-1_57
поэтому я решил поделиться своим решением.
вы можете создать проект модульного тестирования boost двумя способами (и это решение работает для обоих):
- С помощью Увеличить Модульный Тест Адаптер
- или путем создания консольного приложения Win32 (шаги), и заменяя основную функцию функцией тестирования модуля boost (шаги).
вот шаги, которые я последовал, чтобы заставить оба проекта работать:
во-первых, загрузите нужную версию boost (например,boost_1_57_0). Вы можете либо загрузить boost с правильными двоичными файлами (скомпилированными с помощью msvc v140), либо извлеките двоичные файлы самостоятельно, выполнив следующие команды из командной строки:
- bootstrap.летучая мышь
- "C:\Program файлы (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.летучая мышь" х86
- bjam -- clean
- bjam -J4 не-отладка-символы=о --строени-тип=полный набор=индекса MSVC-14.0 резьбы=мульти выполнения-ссылка=общая адрес-модель=32
здесь msvc-14.0 указывает, что нам требуется Visual Studio 2015 версия (VS 2015 = v14. 0 = v140), и address-model=32 указывает, что нам требуется платформа 32 (но то же самое можно сделать для 64 бит).
после того, как у вас есть двоичные файлы, перейдите в Visual Studio, выберите проект модульного тестирования Boost, который вы создали. Перейти к свойства проекта > конфигурация (из главного меню) и выполните следующие действия:
установить "Общие > Набор Инструментов Платформы " в Visual Studio 2015 (v140).
включить путь к папке boost (например C:\boost_1_57_0) и путь к подпапке, содержащей двоичные файлы (например C:\boost_1_57_0\stage\lib) в:
- "C\C++ > Дополнительно Включить Каталог"
- и "Компоновщик - > Дополнительные Каталоги Библиотек".
У меня была такая же проблема, о которой сообщалось здесь. Я решил проблему с перемещением самого главного.cpp из подпапки src/mainTest/ в основную папку src/ Я думаю, это была и твоя проблема тоже.
2>LINK : fatal error LNK1104: cannot open file 'libboost_regex-vc120-mt-sgd-1_55.libв моем случае bootstrap / bjam был недоступен (библиотеки были предварительно скомпилированы и переданы в SCM) в старом унаследованном проекте. В библиотеках не было VC или BOOST versioning в их именах файлов, например:,
Processed /DEFAULTLIB:libboost_regex-vc120-mt-sgd-1_55.libкаким-то образом срабатывает автоматически.исправлено путем ручного добавления неверсионного имени файла в:
<AdditionalDependencies>$(DK_BOOST)\lib64\libboost_regex-mt-sgd.lib</AdditionalDependencies>и занесение в черный список
...vc120-mt-sgd-1_55.libна<IgnoreSpecificDefaultLibraries>libboost_regex-vc120-mt-sgd-1_55.lib</IgnoreSpecificDefaultLibraries>
Comments