неустранимая ошибка 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 не там. Она называется .



есть идеи?

646   9  

9 ответов:

на C++ → Общие → Дополнительные Каталоги Включения параметр предназначен для перечисления каталогов, в которых компилятор будет искать файлы заголовков.

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

это самый простой способ для любителя, как я, который изучает C++ самостоятельно:

сначала распакуйте библиотеку boost в любой каталог по вашему выбору. Я рекомендую c:\directory.

  1. откройте visual C++.
  2. создать новый проект.
  3. Правой Кнопкой Мыши на проекте.
  4. нажмите на собственность.
  5. нажмите на C / C++.
  6. нажмите на генерала.
  7. выберите дополнительно включить библиотека.
  8. включить назначение библиотеки. например,c:\boost_1_57_0.
  9. нажмите на заголовок предварительного компилятора.
  10. Нажмите кнопку Создать / использовать предварительно скомпилированный заголовок.
  11. Выберите не использовать предварительно скомпилированные заголовки.

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

  1. перейти к were извлеченный файл был c:\boost_1_57_0.
  2. нажать на кнопку booststrap.bat (не утруждайте себя вводом в командном окне просто подождите и не закрывайте окно, это место, где у меня была моя проблема, которая заняла у меня две недели, чтобы решить. Через некоторое время booststrap будет работать и производить тот же файл, но теперь с двумя разными именами:b2 и bjam.
  3. нажать на кнопку b2 и ждать его выполнения.
  4. нажать на кнопку bjam и ждать его выполнения. Тогда папка будет производить называется stage.
  5. Правой Кнопкой Мыши на проекте.
  6. нажмите на собственность.
  7. нажмите на компоновщик.
  8. нажмите на генерала.
  9. Нажмите кнопку включить дополнительный каталог библиотеки.
  10. выберите часть библиотеки, например 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 двумя способами (и это решение работает для обоих):

  1. С помощью Увеличить Модульный Тест Адаптер
  2. или путем создания консольного приложения Win32 (шаги), и заменяя основную функцию функцией тестирования модуля boost (шаги).

вот шаги, которые я последовал, чтобы заставить оба проекта работать:

во-первых, загрузите нужную версию boost (например,boost_1_57_0). Вы можете либо загрузить boost с правильными двоичными файлами (скомпилированными с помощью msvc v140), либо извлеките двоичные файлы самостоятельно, выполнив следующие команды из командной строки:

  1. bootstrap.летучая мышь
  2. "C:\Program файлы (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.летучая мышь" х86
  3. bjam -- clean
  4. 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

    Ничего не найдено.