вопрос о ссылке и включении разных версий 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 3

1 ответ:

Если одни и те же функции существуют в обоих B1.Либ и Б2.Lib и оба связаны с A.exe в конечном итоге вы можете столкнуться с проблемой. В основном, если B1:: fn возвращает различные результаты в B2:: fn и A. Lib полагается на результаты B1 и A.exe полагается на результаты B2 у вас есть серьезная проблема. Компоновщик будет просто ссылаться на первую найденную реализацию, и вы не можете быть на 100% уверены, что это будет в B1 или B2.

Реально гораздо безопаснее переписать A. lib, чтобы использовать B2.либ. В противном случае пространства имен являются вашими друг...