nvcc seems to miss an include?

Hiya,

I’m having a problem with a project I am working on. I’ve got a file cuPovray.cu which has an include for a second file cuFrame.cuh, however it complains at compilation that a few of the field types are undefined. The problematic code is

#ifndef CUDA_H

#define CUDA_H

#include <cuda.h>

#include <cuda_runtime.h>

#endif

#ifndef CU_POVRAY_H

#define CU_POVRAY_H

#include "cuFrame.cuh"

cuBEGIN_POV_NAMESPACE

#include "cuPovrayShared.h"

#define cuKill asm("trap;");

#define cuQ_FULL_AMBIENT 0x000001L

#define cuQ_QUICKC       0x000002L

#define cuQ_SHADOW       0x000004L

#define cuQ_AREA_LIGHT   0x000008L

#define cuQ_REFRACT      0x000010L

#define cuQ_REFLECT      0x000020L

#define cuQ_NORMAL       0x000040L

#define cuQ_VOLUME       0x000080L

unsigned int cuQuality_Flags;

typedef struct CU_OPTIONS_STRUCT

{

	unsigned int Options;

	unsigned int Quality_Flags;

	int AntialiasDepth;

	bool AntialiasClipped;

	cuDBL JitterScale;

	int Language_Version;

	bool Use_Slabs;

	cuFRAMESEQ FrameSeq;

	bool Radiosity_Enabled;

	int Radiosity_Recursion_Limit;

	int Radiosity_Use_Normal;

	cuDBL Radiosity_Gray;  /* degree to which gathered light is grayed */

	cuDBL Radiosity_Brightness;

	cuDBL Radiosity_Error_Bound;

	long Radiosity_Count;

	cuDBL Radiosity_Min_Reuse;

	long Radiosity_Nearest_Count;

	cuDBL Radiosity_Dist_Max;

	cuDBL Radiosity_ADC_Bailout;

	long Radiosity_Quality;  /* Q-flag value for light gathering */

	int Radiosity_Use_Media;

	cuDBL Maximum_Sample_Brightness;

	int Radiosity_File_SaveWhileRendering;

	cuDBL Real_Radiosity_Error_Bound;

	int Radiosity_Add_On_Final_Trace;

} cuOpts;

__device__ cuCOUNTER cuStats[MaxStat];

cuEND_POV_NAMESPACE

#endif

Inside cuFrame.cuh, I have the following :

cuBEGIN_POV_NAMESPACE

..........

#ifndef cuDBL

    #define cuDBL double

#endif

.......

#ifndef cuPOV_LONG

    #define cuPOV_LONG	long long

    #define cuPOV_ULONG unsigned long long

#endif

typedef cuPOV_LONG cuCOUNTER;

.......

typedef enum

{

    cuFT_SINGLE_FRAME,

    cuFT_MULTIPLE_FRAME

} cuFRAMETYPE;

typedef struct

{

    cuFRAMETYPE FrameType;

    cuDBL Clock_Value;      /* May change between frames of an animation */

    int FrameNumber;      /* May change between frames of an animation */

int InitialFrame;

    cuDBL InitialClock;

int FinalFrame;

    int FrameNumWidth;

    cuDBL FinalClock;

int SubsetStartFrame;

    cuDBL SubsetStartPercent;

    int SubsetEndFrame;

    cuDBL SubsetEndPercent;

bool Field_Render_Flag;

    bool Odd_Field_Flag;

} cuFRAMESEQ;

............

cuEND_POV_NAMESPACE

I have included this cuFrame.cuh file in lots of other files and it hasn’t been a problem thus far but cuPovray.cu just will not work!!

There are no errors prior to compilation, and if I hover over the definitions in cuPovray.cu it tells me what they are so it is obviously linking them correctly before compilation, but when nvcc takes over to compile it simply fails?

I’m running Visual studio 2010 with the VS2008 compiler and CUDA 3.2

Thanks