Производительность PIC в статических библиотеках

я использую yaml-cpp библиотека, которая по умолчанию генерирует статически зависимую статическую библиотеку (libyaml-cpp.a). Моя собственная библиотека компилируется в две версии, статическую и общую. Так как мне нужен общий, мне нужно включить PIC для yaml-cpp (это легкая часть). Однако теперь я страдаю от снижения производительности в статической библиотеке? Если да, то насколько большой?

В основном у меня есть три варианта:

  1. компилировать yaml-cpp два раза, один раз зависит от позиции и один раз PIC, связать соответствующие элементы в моей общей и статической библиотеке
    • Плюсы: вероятно, лучший результат, как мой общий, так и статический, и используют одни и те же объектные файлы (то есть .cpp компилируются только один раз)
    • Минусы: вероятно, большинство настроек, yaml-cpp будет скомпилирован дважды, но это не должно иметь значения, я не буду его менять (это часто)
  2. компилировать yaml-cpp один раз как PIC, свяжите его с моим общим (PIC) и статическим (не PIC)
    • Плюсы: простота установки
    • Минусы: исходные коды нужно компилировать дважды (общий (PIC), статический (не PIC))
  3. компилировать yaml-cpp один раз как ПОС и скомпилируйте оба мои (поделился & статично) как ПИК тоже
    • Плюсы: простота установки
    • Минусы: слабое исполнение в статическом?

Таким образом, вариант 1 кажется лучшим. Есть ли у меня какие-либо ложные предположения в моем резюме? Или я пропустил какой-либо другой вариант?

Платформа: amd64

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]