Estoy haciendo algo de programación con CUDA C de nVidia. Estoy usando Visual Studio 2008 como entorno de desarrollo y estoy teniendo problemas con algunos enlaces y me pregunto si alguien sabe cómo solucionarlo o ha tenido el mismo problema y podría ofrecer una solución.Problema de Vinculación de Visual Studio con Cuda
Mi programa se compone de 3 archivos. 1 archivo de cabecera (stuff.h), 1 archivo de origen C (stuff.c) y 1 archivo CUDA C (main.cu). (Los nombres son falsos pero es solo para ilustrar el punto).
Ahora stuff.h/stuff.c define/implementa algunas funciones auxiliares que llamo desde adentro main.cu.
Estoy usando Visual Studio 2008 y Cuda.rules de GPU Computing SDK de nVidia y todo compila bien, pero ... cuando se trata de unir todos los archivos, falla. Parece que todas las funciones definidas en stuff.h (e implementadas en stuff.c) no se están vinculando correctamente ya que están marcadas como "símbolos externos no resueltos".
¿Cuáles son las posibles causas y cómo podría solucionarlo?
Muchas gracias,
ExtremeCoder
Bueno por lo que han logrado conseguir todo compilación. Parece que todo lo que tuve que hacer fue cambiar la extensión del archivo de implementación de material de .c a .cpp (lo que significa compilar como C++ funciona mientras que compilar como c no lo hace).
¿Qué podría estar causando esto? Yo prefiero mantener todo como .c en lugar de .cpp (ya que esto sirve realmente para ser un código C ...
Cualquier punteros?
Gracias por la ayuda. Lo tengo funcionando. ¿Hay alguna manera de hacer que los archivos .cu compilen como archivos C y no como archivos C++? Gracias. – ExtremeCoder
Puede probar la opción '--host-compilation = c', pero vea esta publicación para las advertencias: http://forums.nvidia.com/index.php?showtopic=101609. En general, prefiero mantener mi función 'main' y todo lo demás en archivos C/C++ estándar y luego solo tengo kernels y wrappers en los archivos CU. Muchas de las cosas de Thrust también necesitan ir a los archivos CU ... – Tom