CUDA & Visual Studio 2008: Problemas al intentar vincular diferentes proyectos

Mientras buscaba en la red una respuesta a mi problema, he visto varias publicaciones en foros y blogs que abordan el tema "¿Cómo configuro, compilo, enlazo y ejecuto un proyecto CUDA en VIsual Studio 2008"

(Estaba tratando de dar los enlaces pero no se me permite, como nuevo póster: p)

¿Pero qué falta aquí?

Lo que falta es que todas las guías o publicaciones anteriores le indican cómo configurar un único proyecto VS, que será el proyecto de inicio y se ejecutará solo. Como consecuencia, están utilizando la 'Regla de API de tiempo de ejecución CUDA' que está diseñada para crear un archivo .exe amigable con CUDA.

¿Qué quiero / necesito?

1) Quiero tener una solución VS que contendrá múltiples proyectos, la mayoría de los cuales están escritos en C ++. Habrá un proyecto principal escrito en C ++ que crea el '.exe' (que contiene la función 'principal' y, por lo tanto, controla el flujo) y varios otros proyectos que crearán los archivos '.lib' apropiados con los que se vinculará el proyecto principal. 2) En la forma más simple, necesito un proyecto que hará cosas de CUDA que creará el archivo lib y el proyecto principal que lo vinculará y lo usará.

He buscado en todas partes en vano, nadie parece estar usando múltiples proyectos.

Mi problema es 1) El proyecto CUDA crea una biblioteca y, por lo tanto, debe usar la 'Regla de la API del controlador CUDA' y no la variante de tiempo de ejecución (si me atrevo a hacerlo, entonces el proyecto CUDA intenta usar las bibliotecas utilizadas por la principal y hay proyectos definidos de forma múltiple) '2) Al intentar hacerlo de la manera adecuada, el proyecto principal no puede vincularse al proyecto CUDA

Aquí está el código de ejemplo que estoy usando para mostrar cuál es el trato (también adjuntaré el archivo sln VS aquí para aquellos de ustedes que quieran probarlo)

Outline:
    VS Solution
        Main Project(C++ project producing the .exe and containing the main function)
            main.cpp

                #include "../CUDAProject/testCuda.h"

                int
                main(int argc, char** argv)
                {

                    testCudaClass* t2;
                    t2 = new testCudaClass();
                    t2->stub_function();

                    return 0;
                }

        CUDA Project:
            testCuda.h

                #include <cstdio>
                #include <cstdlib>
                #include <iostream>

                class testCudaClass
                {
                public:
                    void stub_function();
                };

            testCuda.cpp

                #include "testCuda.h"
                extern "C" int cuda_function();

                void testCudaClass::stub_function()
                {
                    int a;
                    a=cuda_function();
                    std::cout<< a <<"\n";
                }

            test.cu

                #include "cuda.h"

                extern "C" int cuda_function()
                {
                    return 5;
                }           

Attached (enlaces públicos de dropbox temporales) es un archivo zip con 2 soluciones VS2008, una en la que tengo un solo proyecto CUDA que funciona bien y otra en la que trato de hacer lo anterior (parte del código del proyecto se describe arriba)

http: //dl.dropbox.com/u/3091507/CUDA.zi

Agradecería terriblemente cualquier información o consejo que pueda ayudarme a resolver este enigma

Muchas gracias Adam

Respuestas a la pregunta(1)

Su respuesta a la pregunta