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

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

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

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


person Michael    schedule 04.06.2014    source источник


Ответы (1)


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

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

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

person Michael    schedule 04.06.2014