I'm not a C programmer, I'll say that up front. I've only ever used Java. I'm trying to get a wrapper for CUDA to work via WINE. Details are in the links below:
http://www.winehq.org/pipermail/wine...ly/067031.html
http://www.winehq.org/pipermail/wine...ly/067093.html

Now I've worked through almost all of the errors but I am getting a bunch of undefined errors now and I do not understand why. I've included the proper headers so I am confused, if anyone can help me it would be greatly appreciated. I've attached the c file and I also attached a .zip of the entire directory, so you can have the makefile and headers too. I'm trying to compile with with the winegcc compiler.

Code:
shelnutt@Ubuntu32-L:~/wine/patches/cuda$ make
winegcc -shared cuda.dll.spec -mno-cygwin -o cuda.dll.so cudart.o       -lodbc32 -lole32 -loleaut32 -lwinspool -luuid
cudart.o: In function `wine_cudaGetDeviceCount':
cudart.c:(.text+0x19): undefined reference to `cudaGetDeviceCount'
cudart.o: In function `wine_cudaSetDevice':
cudart.c:(.text+0x3e): undefined reference to `cudaSetDevice'
cudart.o: In function `wine_cudaGetDevice':
cudart.c:(.text+0x63): undefined reference to `cudaGetDevice'
cudart.o: In function `wine_cudaGetDeviceProperties':
cudart.c:(.text+0x8f): undefined reference to `cudaGetDeviceProperties'
cudart.o: In function `wine_cudaChooseDevice':
cudart.c:(.text+0xbb): undefined reference to `cudaChooseDevice'
cudart.o: In function `wine_cudaThreadSynchronize':
cudart.c:(.text+0xda): undefined reference to `cudaThreadSynchronize'
cudart.o: In function `wine_cudaThreadExit':
cudart.c:(.text+0xf7): undefined reference to `cudaThreadExit'
cudart.o: In function `wine_cudaStreamCreate':
cudart.c:(.text+0x11a): undefined reference to `cudaStreamCreate'
cudart.o: In function `wine_cudaStreamQuery':
cudart.c:(.text+0x13f): undefined reference to `cudaStreamQuery'
cudart.o: In function `wine_cudaStreamSynchronize':
cudart.c:(.text+0x164): undefined reference to `cudaStreamSynchronize'
cudart.o: In function `wine_cudaStreamDestroy':
cudart.c:(.text+0x189): undefined reference to `cudaStreamDestroy'
cudart.o: In function `wine_cudaEventCreate':
cudart.c:(.text+0x1ae): undefined reference to `cudaEventCreate'
cudart.o: In function `wine_cudaEventRecord':
cudart.c:(.text+0x1da): undefined reference to `cudaEventRecord'
cudart.o: In function `wine_cudaEventQuery':
cudart.c:(.text+0x1ff): undefined reference to `cudaEventQuery'
cudart.o: In function `wine_cudaEventSynchronize':
cudart.c:(.text+0x224): undefined reference to `cudaEventSynchronize'
cudart.o: In function `wine_cudaEventDestroy':
cudart.c:(.text+0x249): undefined reference to `cudaEventDestroy'
cudart.o: In function `wine_cudaEventElapsedTime':
cudart.c:(.text+0x27c): undefined reference to `cudaEventElapsedTime'
cudart.o: In function `wine_cudaMalloc':
cudart.c:(.text+0x2a8): undefined reference to `cudaMalloc'
cudart.o: In function `wine_cudaMallocPitch':
cudart.c:(.text+0x2e2): undefined reference to `cudaMallocPitch'
cudart.o: In function `wine_cudaFree':
cudart.c:(.text+0x307): undefined reference to `cudaFree'
cudart.o: In function `wine_cudaMallocArray':
cudart.c:(.text+0x341): undefined reference to `cudaMallocArray'
cudart.o: In function `wine_cudaFreeArray':
cudart.c:(.text+0x366): undefined reference to `cudaFreeArray'
cudart.o: In function `wine_cudaMallocHost':
cudart.c:(.text+0x392): undefined reference to `cudaMallocHost'
cudart.o: In function `wine_cudaFreeHost':
cudart.c:(.text+0x3b7): undefined reference to `cudaFreeHost'
cudart.o: In function `wine_cudaMemset':
cudart.c:(.text+0x3ea): undefined reference to `cudaMemset'
cudart.o: In function `wine_cudaMemset2D':
cudart.c:(.text+0x42b): undefined reference to `cudaMemset2D'
cudart.o: In function `wine_cudaMemcpy':
cudart.c:(.text+0x465): undefined reference to `cudaMemcpy'
cudart.o: In function `wine_cudaMemcpyAsync':
cudart.c:(.text+0x4a6): undefined reference to `cudaMemcpyAsync'
cudart.o: In function `wine_cudaMemcpy2D':
cudart.c:(.text+0x4f5): undefined reference to `cudaMemcpy2D'
cudart.o: In function `wine_cudaMemcpy2DAsync':
cudart.c:(.text+0x54b): undefined reference to `cudaMemcpy2DAsync'
cudart.o: In function `wine_cudaMemcpyToArray':
cudart.c:(.text+0x593): undefined reference to `cudaMemcpyToArray'
cudart.o: In function `wine_cudaMemcpyToArrayAsync':
cudart.c:(.text+0x5e2): undefined reference to `cudaMemcpyToArrayAsync'
cudart.o: In function `wine_cudaMemcpy2DToArray':
cudart.c:(.text+0x638): undefined reference to `cudaMemcpy2DToArray'
cudart.o: In function `wine_cudaMemcpy2DToArrayAsync':
cudart.c:(.text+0x695): undefined reference to `cudaMemcpy2DToArrayAsync'
cudart.o: In function `wine_cudaMemcpyFromArray':
cudart.c:(.text+0x6dd): undefined reference to `cudaMemcpyFromArray'
cudart.o: In function `wine_cudaMemcpyFromArrayAsync':
cudart.c:(.text+0x72c): undefined reference to `cudaMemcpyFromArrayAsync'
cudart.o: In function `wine_cudaMemcpy2DFromArray':
cudart.c:(.text+0x782): undefined reference to `cudaMemcpy2DFromArray'
cudart.o: In function `wine_cudaMemcpy2DFromArrayAsync':
cudart.c:(.text+0x7df): undefined reference to `cudaMemcpy2DFromArrayAsync'
cudart.o: In function `wine_cudaMemcpyArrayToArray':
cudart.c:(.text+0x835): undefined reference to `cudaMemcpyArrayToArray'
cudart.o: In function `wine_cudaMemcpy2DArrayToArray':
cudart.c:(.text+0x892): undefined reference to `cudaMemcpy2DArrayToArray'
cudart.o: In function `wine_cudaMalloc3D':
cudart.c:(.text+0x8cc): undefined reference to `cudaMalloc3D'
cudart.o: In function `wine_cudaMalloc3DArray':
cudart.c:(.text+0x90d): undefined reference to `cudaMalloc3DArray'
cudart.o: In function `wine_cudaMemset3D':
cudart.c:(.text+0x963): undefined reference to `cudaMemset3D'
cudart.o: In function `wine_cudaMemcpy3D':
cudart.c:(.text+0x988): undefined reference to `cudaMemcpy3D'
cudart.o: In function `wine_cudaMemcpy3DAsync':
cudart.c:(.text+0x9b4): undefined reference to `cudaMemcpy3DAsync'
cudart.o: In function `wine_cudaGetChannelDesc':
cudart.c:(.text+0x9e0): undefined reference to `cudaGetChannelDesc'
cudart.o: In function `wine_cudaGetTextureReference':
cudart.c:(.text+0xa0c): undefined reference to `cudaGetTextureReference'
cudart.o: In function `wine_cudaBindTexture':
cudart.c:(.text+0xa4d): undefined reference to `cudaBindTexture'
cudart.o: In function `wine_cudaBindTextureToArray':
cudart.c:(.text+0xa80): undefined reference to `cudaBindTextureToArray'
cudart.o: In function `wine_cudaUnbindTexture':
cudart.c:(.text+0xaa5): undefined reference to `cudaUnbindTexture'
cudart.o: In function `wine_cudaGetTextureAlignmentOffset':
cudart.c:(.text+0xad1): undefined reference to `cudaGetTextureAlignmentOffset'
cudart.o: In function `wine_cudaConfigureCall':
cudart.c:(.text+0xb27): undefined reference to `cudaConfigureCall'
cudart.o: In function `wine_cudaLaunch':
cudart.c:(.text+0xb4c): undefined reference to `cudaLaunch'
cudart.o: In function `wine_cudaSetupArgument':
cudart.c:(.text+0xb7f): undefined reference to `cudaSetupArgument'
cudart.o: In function `wine_cudaGLSetGLDevice':
cudart.c:(.text+0xba4): undefined reference to `cudaGLSetGLDevice'
cudart.o: In function `wine_cudaGLRegisterBufferObject':
cudart.c:(.text+0xbc9): undefined reference to `cudaGLRegisterBufferObject'
cudart.o: In function `wine_cudaGLMapBufferObject':
cudart.c:(.text+0xbf5): undefined reference to `cudaGLMapBufferObject'
cudart.o: In function `wine_udaGLUnmapBufferObject':
cudart.c:(.text+0xc1a): undefined reference to `udaGLUnmapBufferObject'
cudart.o: In function `wine_cudaGLUnregisterBufferObject':
cudart.c:(.text+0xc3f): undefined reference to `cudaGLUnregisterBufferObject'
cudart.o: In function `wine_cudaGetLastError':
cudart.c:(.text+0xc5e): undefined reference to `cudaGetLastError'
collect2: ld returned 1 exit status
winegcc: gcc failed
make: *** [cuda.dll.so] Error 2
Thanks