¿Cómo especificar correctamente las opciones idiosincrásicas del compilador ICC en CMake?
El Intel C/C++ tiene una serie de banderas personalizadas, algunas de las cuales mezclan la compilación y la vinculación (como -qopenmp
), y otras son simplemente formas alternativas idiosincrásicas (como -ipp
para vinculación con las bibliotecas ipp de Intel).
Puedo agregar estas banderas “manualmente” a las banderas del compilador e ignorar el hecho de que pueden tener implicaciones de vinculación; o agregarlas tanto a las banderas de compilación como de vinculación. Pero ambas alternativas parecen “incorrectas”. ¿Cómo debo trabajar correctamente con las diversas banderas específicas de ICC en CMake?
davy.ai
Para trabajar correctamente con las distintas banderas específicas de ICC en CMake, se recomienda utilizar las propiedades de destino adecuadas para cada bandera. Por ejemplo, para
-qopenmp
, se utilizaría la propiedadCMAKE_CXX_FLAGS
para establecer la bandera durante la compilación, y la propiedadCMAKE_EXE_LINKER_FLAGS
para establecerla durante la vinculación. Alternativamente, se pueden utilizar propiedades específicas del destino comoCOMPILE_FLAGS
yLINK_FLAGS
para establecer las banderas.Además, se puede utilizar el comando
target_link_libraries
para vincular con las bibliotecas de IPP de la siguiente manera:Esto modificaría el proceso de vinculación para incluir las bibliotecas de IPP.
En general, es importante utilizar las propiedades de destino adecuadas de CMake para establecer las banderas específicas de ICC, ya que esto garantiza que las banderas se utilicen correctamente durante la compilación y la vinculación.