Проблемы компоновщика после переключения на VS2005 с VC6 (LNK4099)
-
20-08-2019 - |
Вопрос
Я портировал один из своих старых проектов на VS2005 и получаю предупреждения компоновщика, такие как
xxxxx.lib(xxxxxxxx.obj) : warning LNK4099: PDB 'vc60.pdb' was not found with ...; linking object as if no debug info
Теперь я попытался перестроить проект, но предупреждения никуда не делись.Действительно ли предполагается, что он ищет vc60.pdb, а не vc80.pdb?У меня действительно есть файл vc80.pdb..
Спасибо
Решение
У вас есть .obj , связанный с вашим .lib , в котором есть отладочная информация;эта отладочная информация содержит ссылку на vc60.pdb.Если .библиотека является вашей собственной, вам необходимо перекомпилировать исходный код и перестроить .файл библиотеки, чтобы обновить эту ссылку.Если .библиотека не ваша, вам придется просто проигнорировать это предупреждение и вы не сможете выполнить отладку в исходном коде этого конкретного объектного файла.
Другие советы
VS2005 обычно не должен искать vc60.pdb, особенно после полной перестройки.
Может быть, у вас есть какая-то сторонняя библиотека, которая не была перекомпилирована и все еще содержит ссылки на старую отладочную информацию?
Обычно файл типа .pdb создается для целей отладки.Согласно некоторой информации, которую я нашел в файле типа .pdb, там написано "этот файл содержит отладочную информацию, которая используется при выполнении программы в режиме отладки".
Я вижу, что вы получаете только предупреждение, а не ошибку, которую программа должна запустить, если вы получили ноль ошибок.
Я считаю, что этот файл вам нужен только для отладки или профилирования.Обычно параметр release используется в окончательной сборке, чтобы обеспечить максимально быстрое выполнение вашей программы.Надеюсь, это поможет.
Вероятно, это какой-то .lib-файл, который был скомпилирован с помощью VS2005.
Вам нужно перекомпилировать ВСЕ.