Ссылка на библиотеку Boost Regex в VS2012

Я пытаюсь построить свой проект VS2012 C ++ с использованием библиотеки Boost Regex. Кажется, что компоновщик не находит библиотеку и выдает ошибку:

error LNK1104: cannot open file 'libboost_regex-vc110-mt-gd-1_50.lib'

В разделе «Свойства проекта: компоновщик: общие сведения: дополнительные каталоги библиотек» я включил путь, который (в подкаталоге) содержит библиотеку с именем boost_regex.lib.

Это было построено сторонним фреймворком (FireBreath), и я не должен его менять. Как заставить VS2012 использовать эту библиотеку вместо того, чтобы искать ее под именем, указанным в ошибке?

1

Решение

Во-первых, почему вы так уверены, что boost_regex.lib — правильный? Это даже для вашего компилятора и версии? Я также сомневаюсь, что это для отладочного варианта библиотеки времени выполнения. Я предполагаю, что вам придется собрать это для используемого компилятора и правильно установить его, для чего есть инструкции на сайте Boost. Это также может означать перестройку FireBreath для вашего компилятора, при условии, что это тоже библиотека C ++.

Затем код в Boost, который определяет настройки компилятора и затем выбирает библиотеку для ссылки, является правильным для обычных установок. В этом коде используется «#pragma comment (lib, …)», чтобы указать библиотеку, на которую будет ссылаться библиотека, поэтому вы сможете найти код. Там вы также сможете обнаружить макросы, которые отключают эту функцию. Тем не менее, вы, вероятно, ничего с этим не исправляете, а скорее создаете больше проблем.

1

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

Замена библиотеки — это не то, что вы хотите сделать. Вместо:

  • Скачать Boost в, скажем, c:\boost
  • Откройте командную строку VS, перейдите в c:\boost и беги bjam, Когда это будет сделано, запустите b2, Подождите.
  • Теперь зайдите в свой проект и добавьте c:\boost\stage\lib в настройку дополнительных каталогов библиотеки.

Это позволит вам построить проект.

0

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