При попытке скомпилировать этот фрагмент кода:
#define _USE_MATH_DEFINES
#include <cmath>
#include <cstdio>
void minimal_example(){
int i=2;
if(i==3 or i==4) printf("I want %d!\n",M_PI);
}
с использованием
nvcc -x cu -Xcompiler=/permissive- -dc cuda_nvcc_cl_test.cu -o cuda_nvcc_cl_test.obj
Я получаю следующие ошибки (в строке 7):
error: expected a ")"
error: identifier "M_PI" is undefined
Я использую Windows 10 с Visual Studio cl.exe (версия 19.16.27031.1 для x64) и набор инструментов CUDA 10.1.
При замене cmath
на math.h
и or
на ||
(как вариант добавить #include <ciso646>
) ошибки исчезают. Однако есть ли какие-то параметры компилятора или другие возможности, чтобы я мог сохранить код как есть?
И почему -Xcompiler=/permissive-
не помогло?
M_PI
также определяется вcmath
через включениеmath.h
- person Oscillon   schedule 29.05.2019