Ich möchte die Unterstützung von Intel Math Kernel Library zu einer Anwendung hinzufügen. Für MKL-Unterstützung muss ich den C-Compiler zu ICC ändern.Ändern Sie CMAKE_C_COMPILER abhängig von benutzerdefinierten Flag festgelegt
Ich möchte, dass nur in der Lage sein ein Flag -DMKL_ENABLE=ON
eingesetzten CMAKE_C_COMPILER
-icc
auch zu ändern, wie OpenMP und Lapack Flaggen und Bibliotheken zu setzen. So füge ich diese Zeilen an den CMakeList.txt:
# Enable MKL support?
OPTION(MKL_ENABLE "Enable Intel Mathematical Kernel Library (MKL) support" OFF)
IF(MKL_ENABLE)
SET(CMAKE_C_COMPILER "icc" CACHE INTERNAL "Set compiler to icc")
SET(LAPACK_ENABLE TRUE CACHE INTERNAL "Enable LAPACK libraries from MKL")
SET(LAPACK_LIBRARIES "-mkl" CACHE INTERNAL "Set LAPACK libraries to -mkl")
SET(OPENMP_ENABLE ON CACHE INTERNAL "Enable openmp support")
ENDIF(MKL_ENABLE)
Es scheint, dass alle anderen Flags gesetzt sind und tatsächlich funktionieren, außer CMAKE_C_COMPILER
, die noch gcc
-- The C compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
Irgendwelche Ideen wie man es beheben ? Es scheint CMake Setups Compiler, wenn project
definiert ist. Soll ich meine Sektion hochziehen? Sieht nicht so hübsch aus.
Sie haben jene Linie vor dem 'project' Befehl zu setzen. Hast du das getan? Der C-Compiler ist speziell für CMake. Ich würde dir sogar raten, es umgekehrt zu machen, wenn der Compiler als ICC erkannt wird, benutze auch MKL. – usr1234567
@ usr1234567 Ja, ich habe das getan. Es funktioniert nur vor meiner Projektdefinition, aber nicht danach. Es sieht aus wie ein Kluge in CMakeLise.txt, aber vielleicht ist es in Ordnung. – rth