Скрытая (отсутствующая) зависимость библиотеки при связывании с cl.exe

Я только что познакомился с большим нетривиальным проектом C++ на базе CMake / Eclipse. Одна из целей сборки основана на Windows / nmake. На последнем этапе построения исполняемого файла компоновщик выдает LNK1104: не удается открыть файл 'python27.lib'. Это правильно, потому что Python 2.7 не был установлен.

Проблема в том, что я не могу найти ссылки на эту библиотеку в командной строке cl.exe. Также grep для всего каталога проекта (включая каталог eclipses.metadata) не найдет ничего правдоподобного. Удаление всего сгенерированного cmake материала не помогло.

Реальный вопрос заключается в том, есть ли в библиотеках на основе MSVC (импортных или статических) какой-либо механизм для неявного запроса дополнительных библиотек во время шага соединения. В упомянутом проекте есть несколько предварительно скомпилированных. Мне просто нужен словарь, с которого можно начать более качественный поиск причины ошибки.

1 ответ

Решение

Я нашел ответ здесь:

Загадочная зависимость Boost.Python 1.54 (отладочная сборка) от Python27.lib в Windows

По сути, виновник #pragma comment() директива внутри буст библиотеки.

Другие вопросы по тегам