Мой проект должен использовать как Micorsoft Visual C ++ math.h
, так и Intel MKL math.h
.
При сборке с подробными данными я получаю:
1> Note: including file: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\cmath
1> Note: including file: E:\3rdParty\MKL\2017.1.143\windows\compiler\include\math.h
1> Note: including file: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\../../vc/include/math.h
1> Note: including file: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\crtdefs.h
1> E:\3rdParty\MKL\2017.1.143\windows\compiler\include\math.h(1577): warning C4005: 'HUGE_VALF' : macro redefinition
1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\../../vc/include/math.h(104) : see previous definition of 'HUGE_VALF'
1> E:\3rdParty\MKL\2017.1.143\windows\compiler\include\math.h(1579): warning C4005: 'HUGE_VALL' : macro redefinition
1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\../../vc/include/math.h(105) : see previous definition of 'HUGE_VALL'
1> E:\3rdParty\MKL\2017.1.143\windows\compiler\include\math.h(1581): warning C4005: 'HUGE_VAL' : macro redefinition
1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\../../vc/include/math.h(96) : see previous definition of 'HUGE_VAL'
"HUGE_VALF" : «Переопределение макроса» - это сообщение, которое вызвало у меня подозрения.
Сначала я просто отключил это предупреждение, но, учитывая, что эта опция только маскирует потенциальную проблему, я ищу альтернативное решение.
Из строк 1 и 2 вы можете видеть, что cmath
Visual Studio не включает math.h
Visual Studio, как это должно быть, но файл MKL с тем же именем.
Как установить мой CMakeLists.txt
файл, чтобы компилятор мог правильно выбрать файлы для включения?