Thread: In over my head

  1. #1
    Registered User
    Join Date
    Jul 2008
    Posts
    1

    In over my head

    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

  2. #2
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    Perhaps the prototypes in the header files do not match the function definitions. What happens if you add WINAPI to the functions in the header file cuda_runtime.h?
    Last edited by dwks; 07-08-2008 at 06:58 PM.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Looking for a way to store listbox data
    By Welder in forum C Programming
    Replies: 20
    Last Post: 11-01-2007, 11:48 PM
  2. Cant head insert on doubly linked list
    By aciarlillo in forum C++ Programming
    Replies: 4
    Last Post: 09-18-2005, 11:31 AM
  3. Can't figure out problem with code
    By Beast() in forum C Programming
    Replies: 4
    Last Post: 04-16-2005, 05:27 PM
  4. Linked List Help
    By Perverse in forum C++ Programming
    Replies: 3
    Last Post: 02-22-2005, 08:33 AM
  5. Linked list, is this correct?
    By scrappy in forum C Programming
    Replies: 5
    Last Post: 11-13-2003, 12:06 AM