Usando a otimização do tempo de link do GCC com bibliotecas vinculadas estáticas
Estou tentando usar otimizações de tempo de link com o-flto
Bandeira do CCG (6.1.1).
Embora funcione bem com o meu código, ele não vincula a uma biblioteca vinculada estática que também estou criando e vinculando ao meu projeto (que éMotor e a biblioteca églsl-optimizer, Somente para referência).
Aqui está a saída:
...
/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
...
E depois disso, é claro, recebo várias "referências indefinidas" para algumas funções.
Eu fiz algumas pesquisas e descobri que pode ser por causa dear
e eu deveria tentar usargcc-ar
, mas não tenho certeza de como posso fazer isso.
Além disso, estou usando o CMake que não suporta lto (exceto no compilador da Intel em algumas plataformas, então eu li ...). Mesmo assim, tentei usar:
set_property(TARGET glsl_optimizer PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
O que não deu certo.
Além disso, eu tentei o GCC-fuse-linker-plugin
sinalizador que não funcionou.
Eu acho que vou ter que fazê-lo manualmente da maneira antiga usando diretamentegcc-ar
, ou talvez haja algum outro método?