c++ - usando - Cómo crear una DLL con SWIG desde Visual Studio 2010
visual basic descargar (1)
He intentado durante semanas obtener que Microsoft Visual Studio 2010 cree una DLL para mí con SWIG. Si ya ha pasado por este proceso, ¿sería tan amable de dar una explicación detallada del proceso paso a paso? He buscado en todas partes en línea y he pasado muchas horas tratando de hacer esto; pero todos los tutoriales que encontré están desactualizados o mal explicados.
He logrado pasar por este proceso con cygwin; pero como algunos de ustedes saben, una DLL de cygwin no es muy práctica.
Como resultado, tengo archivos .i, .cpp y .h que sé que pueden crear una DLL juntos. Solo necesito saber cómo hacerlo con Visual Studio C ++ 2010. El lenguaje al que me dirijo es Python.
Por favor no me refieras a otro sitio; porque es probable que ya haya estado allí y lo haya intentado. Además, por favor, no comentarios sarcásticos porque es muy importante que esto funcione en el futuro cercano.
¡Muchas gracias por su ayuda con anticipación!
Instrucciones paso a paso. Esto supone que tiene el origen y está compilando una única extensión DLL que vincula el origen directamente en él. No volví a hacerlo después de crear un proyecto en funcionamiento, por lo que puede haber perdido algo. Comenta esta publicación si te quedas atascado en un paso. Si tiene una DLL existente y desea crear una DLL de extensión de Python que lo envuelva, estos pasos son ligeramente diferentes. Si necesita ayuda con ese comentario en esta publicación, la extenderé.
Editar 19/08/2012 : si comienza con un ejemplo C, no use -c++
en el paso 13 y use .c
lugar de .cxx
para la extensión del archivo wrap en los pasos 14 y 19.
- Inicie Visual Studio 2010
- Archivo, Nuevo, Proyecto desde código existente ...
- Seleccione el tipo de proyecto "Visual C ++" y haga clic en Siguiente.
- Ingrese la ubicación del archivo de proyecto donde están los archivos .cpp / .h / .i.
- Para Nombre del proyecto, elija el nombre usado en la declaración% del módulo en su archivo .i (el caso es importante).
- Seleccione el tipo de proyecto "Proyecto de biblioteca enlazada dinámicamente (DLL)" y haga clic en Siguiente.
- Agregue para incluir rutas de búsqueda la ruta al archivo Python.h, generalmente algo como "C: / Python27 / include" y haga clic en Siguiente.
- Haga clic en Finalizar.
- Haga clic con el botón derecho en Proyecto en Explorador de soluciones, Agregar, elemento existente ... y seleccione su archivo .i.
- Haga clic con el botón derecho en el archivo .i, Propiedades y seleccione Configuración "Todas las configuraciones".
- Cambie el tipo de elemento a "Custom Build Tool" y haga clic en Aplicar.
- Seleccione "Custom Build Tool" en Propiedades (aparecerá después de Aplicar arriba).
- Ingrese la línea de comando de "swig -c ++ -python -outdir $ (Outdir)% (Identity)" (esto supone que SWIG está en su ruta y redirecciona el archivo .py generado al directorio Debug o Release según sea necesario).
- En Salidas, ingrese "% (Filename) _wrap.cxx; $ (Outdir)% (Filename) .py".
- Haga clic en Aceptar.
- Haga clic con el botón derecho en el archivo .i y seleccione Compilar.
- Haga clic con el botón derecho en el proyecto, Agregar, Nuevo filtro, asígnele el nombre "Archivos generados".
- Haga clic con el botón derecho en "Archivos generados", haga clic en Propiedades y establezca "Archivos SCC" en "Falso" (si usa el control de origen, esto evita que VS2010 intente controlar los archivos generados en este filtro).
- Haga clic con el botón derecho en "Archivos generados", agregue, salga del elemento y seleccione el archivo _wrap.cxx que generó la compilación.
- Haga clic derecho en el proyecto, Propiedades.
- Seleccione Configuración "Todas las configuraciones".
- Seleccione Propiedades de configuración, Enlazador, General, Directorios de biblioteca adicionales y agregue la ruta a las bibliotecas de python, normalmente "C: / Python27 / libs".
- Seleccione Propiedades de configuración, General y establezca TargetName en "_ $ (ProjectName)".
- Establezca Target Extension en ".pyd".
- Cree la versión "Versión" del proyecto. No puede compilar la versión de depuración a menos que construya una versión de depuración de Python.
- Abra una consola, vaya al directorio de versiones del proyecto, ejecute Python, importe su módulo y llame a una función.