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

StackOverflow https://stackoverflow.com//questions/24031170

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top