Cannot compile CUDA with c++

I am calling a cuda kernel function inside a void c++function from a .cu file, but my compiler error

expected primary-expression before ‘<’ token
     Integrate <<< voxel_grid_dim_z, voxel_grid_dim_y >>>

this is my main.cpp file

#include "../Cuda/" 

this is my file

#include "device_launch_parameters.h"    
    #include <cuda.h>
    #include <cuda_runtime.h>
    #include <cuda_runtime_api.h>

    void Integrate(..){.. }
    void computeTSDF (..){ Integrate <<< voxel_grid_dim_z, voxel_grid_dim_y >>>(..)}

this is my cmakelist.txt

cmake_minimum_required(VERSION 3.1)
    project( reconstruction )  
    find_package( OpenCV REQUIRED )
    find_package( PCL 1.8 REQUIRED)
    find_package(CUDA REQUIRED)
    set(CUDA_HOST_COMPILER "c++")
    set_directory_properties( PROPERTIES COMPILE_DEFINITIONS "" )
    ${CUDA_LIBRARIES} cudnn   ${CUDA_curand_LIBRARY} ${CUDA_cudart_LIBRARY} ${CUDA_cublas_LIBRARY} ${CUDA_cudnn_LIBRARY} ${CUDA_cudadevrt_LIBRARY}
    file(GLOB SOURCES  src/*.cpp src/*.cc include/*.h)
    file(GLOB cuda_files Cuda/*.cu)
    file(GLOB containers Cuda/containers/*.cpp Cuda/containers/*.hpp)
    set(CUDA_ARCH_BIN " 35 " CACHE STRING "Specify 'real' GPU arch to build binaries for, BIN(PTX) format is supported. Example: 1.3 2.1(1.3) or 13 21(13)")
    set(CUDA_ARCH_PTX "" CACHE STRING "Specify 'virtual' PTX arch to build PTX intermediate code for. Example: 1.0 1.2 or 10 12")
    set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}  "-Xcompiler;-fPIC;-std=c++11")
    set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "--ftz=true;--prec-div=false;--prec-sqrt=false; -rdc=true") 
    CUDA_COMPILE(cuda_objs ${cuda_files} )
    set(CMAKE_CXX_FLAGS "-O3 -msse2 -msse3 -Wall -std=c++11")
    cuda_add_executable(ttest ${SOURCES} ${cuda_files} ${cuda_objs} ${containers} )
     target_link_libraries( ttest ${OpenCV_LIBS} ${pcl_libs} 
    	${Pangolin_LIBRARIES} ${Eigen_LIBRARIES} ${cuda_libs})

it seems my compiler cannot identify computeTSDF as a cuda function even thougth i change the extetion to .cu file.

Can i call the cuda kernel function from my void c++ function in the same .cu file?

yeah actually i solved my problem, i shouldn’t include .cu in the cpp file

hey, i come across the similar question, “error: expected primary-expression before ‘<’ token
vector_add<<<grid,block>>> (a_device, b_device, c_device, length);”, and the following is my code, I would appreciate it if you could help me.
global void vector_add(float* vec1, float* vec2, float* vecres, int length)
int tid = threadIdx.x;
if (tid < length)
vecres[tid] = vec1[tid] + vec2[tid];

dim3 grid(1, 1, 1);
dim3 block(length, 1, 1); // 设置参数
vector_add<<<grid,block>>>(a_device, b_device, c_device, length);