VS2013 LNK1104 запрашивает другую версию внешней библиотеки (повышение)

У меня есть решение VS2013 с 4 проектами. Мой стартовый проект (A) зависит от трех других проектов (B, C и D). Все 3 проекта прекрасно компилируются без ошибок компоновки.

Мой стартовый проект запрашивает libboost_filesystem-vc120-mt-gd-1_55.lib, но при просмотре свойств проекта всех проектов нет зависимостей lib, даже в исходных файлах как #pragma comment(lib). Кроме того, единственным проектом, использующим boost/filesystem.hpp, является проект B, который компилируется без ошибок.

Обратите внимание, что у меня есть все библиотеки boost под C:\Program Files (x86)\Boost\lib32-msvc-12.0, и я использую boost 1.56.

Мои вопросы:

  1. Почему A запрашивает Boost lib, когда B — единственный проект, использующий файловую систему boost?
  2. Почему А просит буст 1,55 либ, когда у меня буст 1,56?
  3. Если B — единственный проект, использующий boost::filesystem, и он отлично компилируется, почему я получаю эту ошибку компоновщика?
  4. Почему в этой зависимости нет явных зависимостей lib в свойствах проекта или исходном коде?

Я также просмотрел все файлы заголовков в файловой системе и не нашел #pragma comment(lib)


person Francisco Inácio    schedule 15.10.2014    source источник


Ответы (1)


Прежде всего, я рекомендую пересобрать все проекты с нуля.

Затем попробуйте параметр компилятора /showIncludes. Это даст вам включение файлового дерева с полными путями.

person magras    schedule 15.10.2014
comment
Я перестраивал каждый проект индивидуально. У меня также есть этот вариант компилятора, но я точно не знаю, что он позволяет мне увидеть. - person Francisco Inácio; 16.10.2014
comment
@Francisco, найдите заголовки boost 1.55 в окне вывода во время компиляции. Я не могу сказать вам, где они находятся на вашей машине. Вероятно, вы можете сначала отфильтровать их по файловой системе. - person magras; 16.10.2014