вопрос о ссылке и включении разных версий lib
Это проблема, если у меня есть исполняемый файл и библиотека использовать разные версии другой библиотеки.
Пример:
Если у меня есть исполняемый файл: A.exe, и это в основном оборачивается и зависит от статическая библиотека A. lib
Оба A.exe и A. lib нужна еще одна библиотека B. lib
Если у меня такая ситуация:
Библиотека A. lib включает B. lib версии 1 (использует заголовочные файлы из эта библиотека) Тот самый A.exe исполняемый файл включает в себя B. lib версии 2 В A.exe исполняемые ссылки на B. lib version 2
При каких условиях это было бы проблематично?
Спасибо
1 ответ:
Если одни и те же функции существуют в обоих B1.Либ и Б2.Lib и оба связаны с A.exe в конечном итоге вы можете столкнуться с проблемой. В основном, если B1:: fn возвращает различные результаты в B2:: fn и A. Lib полагается на результаты B1 и A.exe полагается на результаты B2 у вас есть серьезная проблема. Компоновщик будет просто ссылаться на первую найденную реализацию, и вы не можете быть на 100% уверены, что это будет в B1 или B2.
Реально гораздо безопаснее переписать A. lib, чтобы использовать B2.либ. В противном случае пространства имен являются вашими друг...