Использование оптимизации времени соединения GCC со статическими связанными библиотеками

Я пытаюсь использовать оптимизацию времени соединения с-flto флаг GCC (6.1.1).

Хотя он отлично работает с моим кодом, он не связывается со статической связанной библиотекой, которую я также строю и связываю с моим проектом (которыйдвигатель и библиотекаGLSL-оптимизатор, только для справки).

Вот вывод:

...
/usr/bin/ranlib: ir_expression_flattening.cpp.o: plugin needed to handle lto object
/usr/bin/ranlib: opt_function_inlining.cpp.o: plugin needed to handle lto object
/usr/bin/ranlib: opt_copy_propagation_elements.cpp.o: plugin needed to handle lto object
...

И после этого, конечно, я получаю несколько «неопределенных ссылок» на некоторые функции.

Я провел некоторое исследование и выяснил, что это может быть из-заar и я должен попытаться использоватьgcc-ar, но я не уверен, как я мог бы сделать это.

Кроме того, я использую CMake, который не поддерживает lto (за исключением компилятора Intel на некоторых платформах, поэтому я прочитал ...). Хотя я пытался использовать:

set_property(TARGET glsl_optimizer PROPERTY INTERPROCEDURAL_OPTIMIZATION True)

Который не работал.

Кроме того, я попробовал GCC-fuse-linker-plugin флаг, который не работал.

Я думаю, мне придется сделать это вручную по-старому напрямую, используяgcc-arили, может быть, есть какой-то другой метод?

Ответы на вопрос(1)

Ваш ответ на вопрос