Понимание библиотек времени выполнения C в Windows и Linux и рекомендации по связываниюC++

Программы на C++. Форум разработчиков
Anonymous
 Понимание библиотек времени выполнения C в Windows и Linux и рекомендации по связыванию

Сообщение Anonymous »

Они эквивалентны?



Windows
Linux




vcruntime[версия].dll
-static-libgcc

< tr>
msvcp[версия].dll
-static-libstdc++



Более того, правда ли, что если я статически связываю среду выполнения C в своем проекте верхнего уровня (библиотеке), то мне следует статически связывать среду C во ВСЕХ зависимостях рекурсивно (огромные потери) и наоборот, т. е. при динамическом связывании ВСЕ зависимости также должны быть связаны динамически?
В большом проекте я этого не делаю. обязательно иметь контроль над тем, как строятся зависимости. Как мне вообще узнать, была ли среда выполнения C связана в зависимостях статически или динамически?
На этом все не заканчивается. Допустим, моя библиотека верхнего уровня — A, и она зависит от B. Скажем, я статически связываю среду выполнения C с B. Таким образом, в B есть копия среды выполнения C. Теперь я также статически связываю среду выполнения C с A и далее статически связываю A с B. Тогда не получу ли я две копии среды выполнения C в A? Одна копия получается в результате статического связывания среды выполнения C с A, а другая копия - потому, что я статически связал A с B, в котором сама есть копия среды выполнения C? Не создаст ли это проблем?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ces-on-lin

Вернуться в «C++»