CompileOnUnix/es

En las distribuciones recientes de Linux, FreeCAD es generalmente bastante fácil de construir, ya que todas las dependencias están proporcionadas por el gestor de paquetes. Básicamente, solo tendrás que conseguir el código fuente de FreeCAD, y luego instalar las dependencias catalogadas abajo, y luego ver las incidencias:

./autogen.sh && ./configure && make o ./cmake. && make para tener FreeCAD construido, dependiendo del sistema de construcción que prefieras utilizar (autotools o cmake). Abajo, encontrarás explicaciones detalladas del proceso completo y particularidades que podrías encontrar. Antes de que estés demasiado atascado con los detalles, hay también un Archivo de guión para Debian que puedes utilizar. Si usted encuentra algún error en él o en lo que viene a continuación, por favor ayúdanos corrigiéndolo.

Consiguiendo el código fuente
Antes de que puedas compilar FreeCAD, debes conseguir el código fuente. Primero instala subversion. Luego, desde el directorio de tu elección (por ejemplo tu carpeta de usuario), haz: svn co https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk freecad Esto realizará una recepción anónima de la versión actual en desarrollo en un nuevo directorio llamado "freecad". Alternativamente puedes descargar un archivo tarball con el código fuente pero podría ser bastante antiguo así que posiblemente sea mejor que siempre obtengas las últimas versiones del código fuente vía subversion. Nota, aunque, la versión de subversion es la versión con la que se está en desarrollo actualmente en FreeCAD, y podría contener errores o fallar al compilar.

Pre-requisitos
Para compilar FreeCAD en Linux primero tienes que instalar todas las bibliotecas mencionadas en Bibliotecas de Terceros. También necesitas [|GNU Compiler Collection gcc] en una versión igual o superior a la 3.0.0. g++ es también necesario porque FreeCAD está completamente escrito en C++. Tanto gcc como g++ están incluidos en el paquete build-essential listado más abajo. Durante la compilación se ejecutan algunos archivos de guión de Python. Así que el intérprete de Python tiene que funcionar correctamente.

Para evitar cualquier problema de vinculación durante el proceso de construcción es una buena idea tener las rutas de la biblioteca en tu variable "LD_LIBRARY_PATH" o en tu archivo "ld.so.conf". Esto ya es lo habitual en distribuciones recientes.

Para obtener más detalles echa un vistazo al archivo README.Linux en el código fuente.

Debian/Ubuntu y las distribuciones más recientes
En los sistemas basados en Debian es bastante sencillo instalar todas las dependencias necesarias. La mayoría de las librerías están disponibles vía apt-get o el gestor de paquetes synaptic. Abajo están listados todos los paquetes que necesitas instalar. En otras distribuciones, los nombres de los paquetes puede variar, pero seguramente también logres encontrarlos todos: build-essential python libcoin60-dev libsoqt4-dev libxerces-c2-dev (or libxerces28-dev depending on your system) libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-serialization-dev libboost-signals-dev libboost-regex-dev libboost-thread-dev libqt4-dev qt4-dev-tools python2.5-dev (or higher version if available) libopencascade-dev libf2c2-dev gfortran libeigen3-dev libqtwebkit-dev

Para simplificar la instalación de todas estas bibliotecas en un paso, simplemente copia y pega el texto siguiente en una consola del terminal (solo para sistemas basados en Debian/Ubuntu) como root: aptitude install build-essential python libcoin60-dev libsoqt4-dev libxerces-c2-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-serialization-dev libboost-signals-dev libboost-regex-dev libboost-thread-dev libqt4-dev qt4-dev-tools python2.5-dev libopencascade-dev libf2c2-dev gfortran libeigen3-dev libqtwebkit-dev

Otro modo sencillo, si tu distribución basada en Debian ya dispone de un paquete de FreeCAD, es hacer lo siguiente: apt-get build-dep freecad lo que buscará todos los paquetes necesarios para construir FreeCAD. Con la precaución de que algunos nuevos paquetes podrían ser necesarios desde la última versión, que tendrías que instalar manualmente.

Opcionalmente también puedes instalar libsimage-dev (para que Coin soporte formatos de imágenes adicionales) checkinstall (para registrar tus archivos instalados en tu gestor de paquetes del sistema, así puedes desinstalarlo después fácilmente) python-pivy (necesitado por el módulo de Bocetado 2D) python-qt4 (necesitado por el módulo de Bocetado 2D) doxygen and libcoin60-doc (si pretendes generar la documentación del código fuente) libspnav-dev (para soportar dispositivos de 3Dconnexion como Space Navigator o Space Pilot)

Fedora
Para construir e instalar FreeCAD en Fedora 13, son necesarios unos cuantos trucos y consejos:
 * Instalar algunos de los paquetes requeridos, la mayoría disponibles desde los repositorios de Fedora 13
 * Descargar y construir xerces
 * Descargar y construir OpenCascade. Es necesario que apunte a xmu: ./configure --with-xmu-include=/usr/include/X11/Xmu --with-xmu-library=/usr/lib
 * Descargar y construir Pivy. Tienes que eliminar 2 referencias inexistentes a "SoQtSpaceball.h" de pivy/interfaces/soqt.i Poner como comentarios esas dos líneas permitirá que funcionen la construcción e e instalación.
 * Configurar FreeCAD. Necesitarás que apunten a algunas cosas: ./configure --with-qt4-include=/usr/include --with-qt4-bin=/usr/lib/qt4/bin --with-occ-lib=/usr/local/lib --with-occ-include=/usr/local/inc --with-xercesc-lib=/usr/local/lib
 * make - Choca con un problema en el que la construcción se rompe debido a que el ldflags para soqt está definida como "-LNONE" lo que hace que libtool se cuelgue. La solución que he encontrado es modificar /usr/lib/Coin2/conf/soqt-default.cfg para que ldflags sea "" en lugar de "-LNONE". Después de esto -> Funciona !
 * make install

Distribuciones antiguas y no convencionales
En distribuciones antiguas, sin embargo podrías no encontrar las siguientes bibliotecas:

OpenCASCADE
No todas las distribuciones de Linux tienen un paquete oficial de OpenCASCADE en sus repositorios. Tienes que comprobar si existe una disponible para tu distribución. Al menos para Debian Lenny y Ubuntu Intrepid se proporciona un paquete .deb oficial. Para versiones de Debian o Ubuntu más antiguas puedes encontrar paquetes no oficiales aquí. Para construir tu propio paquete .deb privado sigue estos pasos:

wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0.orig.tar.gz wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0-7.dsc wget http://lyre.mit.edu/~powell/opencascade/opencascade_6.2.0-7.diff.gz

dpkg-source -x opencascade_6.2.0-7.dsc

sudo apt-get install build-essential devscripts debhelper autoconf automake libtool bison libx11-dev tcl8.4-dev tk8.4-dev libgl1-mesa-dev libglu1-mesa-dev java-gcj-compat-dev libxmu-dev
 * 1) Install OCC build-deps

cd opencascade-6.2.0 ; debuild
 * 1) Build Opencascade packages. This takes hours and requires
 * 2) at least 8 GB of free disk space

sudo dpkg -i libopencascade6.2-0_6.2.0-7_i386.deb libopencascade6.2-dev_6.2.0-7_i386.deb
 * 1) Install the resulting library debs

Alternativamente, puedes descargar y compilar la última versión desde opencascade.org:

Instala el paquete normalmente, se consciente de que el instalador es un programa en Java que requiere la edición oficial de Java de Sun (nombre de paquete: sun-java6-jre), no la versión de código libre de Java (gij) que está incluida con Ubuntu. Puedes instalarlo si fuera necesario: sudo apt-get remove gij sudo apt-get install sun-java6-jre Ten cuidado, si estas utilizando gij Java con otras cosas como un plugin de tu navegador, dejarán de funcionar. Si el instalador no funciona, prueba: java -cp path_to_file_setup.jar <-Dtemp.dir=path_to_tmp_directory> run

Una vez que el paquete está instalado, ve al directorio "ros" dentro de opencascade, y haz ./configure --with-tcl=/usr/lib/tcl8.4 --with-tk=/usr/lib/tk8.4 ahora puedes construirlo. Vuelve al directorio ros y haz: make Puede llevar algo de tiempo, incluso algunas horas.

Cuando esté terminado, simplemente instala con sudo make install Los archivos de biblioteca se copiarán a /usr/local/lib donde serán encontrados automáticamente por cualquier programa. Alternativamente, también puedes hacer sudo checkinstall lo cual hará lo mismo que make install pero crea una entrada en tu sistema de gestión de paquetes para que puedas desinstalarlo fácilmente después. Ahora limpia la gran cantidad de archivos temporales de compilación haciendo make clean

Posible error 1: Si estas utilizando OCC version 6.2, es probable que el compilador pare justo después de empezar la operación "make". Si sucede esto, edita el archivo "configure", localiza la declaración CXXFLAGS="$CXXFLAGS ", y reemplazala por CXXFLAGS="$CXXFLAGS -ffriend-injection -fpermissive". Luego haz el paso de configure de nuevo.

Posible error 2: Posiblemente varios módulos (WOKSH, WOKLibs, TKWOKTcl, TKViewerTest y TKDraw) indiquen que no pueden encontrar las cabeceras de tcl/tk. En ese caso, ya que la opción no está presente en el archivo configure, tendrás que editar manualmente el makefile de cada uno de estos módulos: Ve a adm/make y en cada uno de los directorios de los módulos con problemas. Edita el Makefile, y localiza las líneas CSF_TclLibs_INCLUDES = -I/usr/include y CSF_TclTkLibs_INCLUDES = -I/usr/include y añade /tcl8.4 y /tk8.4 en ellas de modo que se puedan leer: CSF_TclLibs_INCLUDES = -I/usr/include/tcl8.4 y CSF_TclTkLibs_INCLUDES = -I/usr/include/tk8.4

SoQt
La biblioteca SoQt library debe compilarse contra Qt4, que es el caso de las distribuciones más recientes. Pero en el momento de escribir este artículo solo existían paquetes SoQt4 disponibles para Debian pero no para todas las versiones de Ubuntu. Para construir estos paquetes sigue los siguientes pasos:

wget http://ftp.de.debian.org/debian/pool/main/s/soqt/soqt_1.4.1.orig.tar.gz wget http://ftp.de.debian.org/debian/pool/main/s/soqt/soqt_1.4.1-6.dsc wget http://ftp.de.debian.org/debian/pool/main/s/soqt/soqt_1.4.1-6.diff.gz dpkg-source -x soqt_1.4.1-6.dsc sudo apt-get install doxygen devscripts fakeroot debhelper libqt3-mt-dev qt3-dev-tools libqt4-opengl-dev cd soqt-1.4.1 debuild sudo dpkg -i libsoqt4-20_1.4.1-6_i386.deb libsoqt4-dev_1.4.1-6_i386.deb libsoqt-dev-common_1.4.1-6_i386.deb

Si estas en un sistema de 64bit system, probablemente tendrás que cambiar i386 por amd64.

Pivy
Pivy no es necesario para construir FreeCAD o para ejecutarlo, pero es necesario para que funcione el módulo de croquizado 2D. Si no vas a utilizar ese módulo, no necesitas pivy. En el momento de escribir este artículo, Pivy aún es muy reciente y podría no estar incluido en los repositorios de tu distribución. Si no puedes encontrar Pivy en los repositorios de paquetes de tu distribución, puedes aprovechar los paquetes de Debian/Ubuntu en la página de descargas de FreeCAD:

http://sourceforge.net/projects/free-cad/files/FreeCAD%20Linux/

o compila pivy tu mismo:

Pivy compilation instructions

El modo autotools
Necesitas tener instalados automake y libtool en tu sistema; en Debian/Ubuntu: aptitude install automake libtool Si consigues el código fuente con subversion entonces el primer paso debe ser ./autogen.sh esto crea los archivos configure y más. Para el proceso de construcción proporcionamos un archivo configure. Simplemente escribe ./configure para tener todo configurado. Si quieres echar un vistazo a todas las opciones que puedes especificar, puedes escribir ./configure --help. Lo habitual es que no necesites ninguna de ellas - a menos que tengas una de tus bibliotecas instaladas en un directorio realmente fuera de lo común. Después de que la configuración hubiera terminado, la compilación de FreeCAD es tan simple como make Si se produce algún error mientras se construye desde las fuentes, por favor comprueba de nuevo esta página y el archivo README.Linux, luego podrías ir al Seguimiento de inicdencias en SourceForge, seleccionar Any como estado y pulsar el botón Browse para ver informes previos de errores de compilación. Después de construir FreeCAD satisfactoriamente, haz make install para instalarlo en tu equipo. El directorio de instalación por defecto es ~/FreeCAD Estará instalado en un directorio FreeCAD dentro de tu directorio home, de modo que no necesitas privilegios de root. En lugar de make install, también puedes hacer checkinstall De este modo FreeCAD será instalado por tu sistema de gestión de paquetes, de modo que puedas desinstalarlo de forma sencilla después. Pero ya que toda la instalación de FreeCAD reside en un único directorio, simplemente eliminar el directorio de FreeCAD también es un sistema de desinstalación válido.

El modo cMake
cMake es un sistema de construcción más moderno que tiene la gran ventaja de ser común para diferentes sistemas (Linux, Windows, MacOSX, etc). FreeCAD está cambiando de forma progresiva hacia el sistema cMake, y ya puedes construir FreeCAD de este modo. Como con autotools, el proceso va en dos pasos: primero configurar el código fuente, y luego construir el programa correctamente.

En el primer paso, cMake comprueba que todos los programas necesarios y bibliotecas están presentes en tu sistema y define todo lo que es necesario para la compilación. Se te darán unas cuantas alternativas detalladas más abajo, pero FreeCAD viene con faltas sensibles y, asumiendo que cMake está instalado en tu sistema, para una primera compilación puedes simplemente cambiar al directorio del código fuente de FreeCAD y probar: cmake. para tener el código fuente configurado (No olvides el punto! Es un parámetro del comando cmake). Luego prueba: make para construir FreeCAD. Aún no se ha podido crear un sistema ampliamente completo de instalación de FreeCAD con cmake, pero puedes ejecutar FreeCAD simplemente probando ./bin/FreeCAD

Si intentas seguir la rápida evolución de las versiones SVN y posiblemente contribuir al código, cMake permite realizar varias construcciones a partir de código fuente. Simplemente crea un directorio de construcción distinto al directorio raíz de FreeCAD, cambia a este directorio y prueba: cmake path-to-freecad-root make El efecto es que cada archivo generado en momento de configuración va a tu directorio de construcción, y no se mezcla con el código fuente recibido desde SVN. La gestión de tu copia local del código fuente será mucho más sencilla.
 * Construcción a partir del último código fuente:

Hay un número de módulos experimentales o sin terminar que podrías tener que construir si quieres trabajar en ellos. Para hacerlo, necesitas establecer las opciones correctas para la fase de configuración. Hazlo en la línea de comandos, pasando -D : = opciones a cMake o utilizando uno de los entornos gráficos disponibles (eg para Debian, los paquetes cmake-qt-gui o cmake-curses-gui).
 * Opciones de Configuración:

Como ejemplo, para configurar en la línea de comandos con la construcción del módulo Assembly, prueba: cmake -D FREECAD_BUILD_ASSEMBLY:BOOL=ON path-to-freecad-root Las opciones posibles están listadas en el archivo CmakeLists.txt del directorio raíz de FreeCAD.

Partes opcionales
freecad/src/Tools/plugins/widget De momento no proporcionamos un makefile -- pero llamando qmake plugin.pro se crea. Una vez hecho esto, llamando make se creará la biblioteca libFreeCAD_widgets.so. Para hacer que esta biblioteca sea conocida por Qt Designer tienes que copiar el archivo a $QTDIR/plugin/designer
 * Si quieres desarrollar material en Qt para FreeCAD, necesitaras el plugin Qt Designer que proporciona todos los widgets o complementos personalizados de FreeCAD. Ve a


 * Si eres suficiente audaz como para bucear entre el código, podrías aprovechar para construir y consultar la Documentación del código de FreeCAD generada por Doxygen

Nota para sistemas de 64bit
Cuando se construye FreeCAD para sistemas de 64-bit existe una incidencia con el paquete OpenCASCADE de 64-bit. Para tener FreeCAD funcionando correctamente podrías necesitar ejecutar el archivo ./configure con la definición adicional _OCC64 establecida: ./configure CXXFLAGS="-D_OCC64" Para sistemas basados en Debian no es necesario utilizar la solución anterior cuando se utilizan paquetes preconstruidos porque allí el paquete OpenCASCADE está construido para establecer internamente esta definición. Ahora simplemente necesitas compilar FreeCAD del mismo modo que se describe arriba.

Macros Automake
El archivo configure de FreeCAD hace uso de varias macros automake que a veces no se instalan con sus paquetes: bnv_have_qt.m4, coin.m4, y gts.m4. Si es necesario (error durante la configuración), búscalos en google y los encontrarás fácilmente. Hay algunos archivos de guión simples que necesitas poner en tu directorio /usr/share/aclocal.

Creación de un paquete en Debian
Si quieres construir un paquete en Debian a partir del código fuente primero necesitas instalar estos paquetes: dh-make devscripts lintian (optional, used for checking if packages are standard-compliant) Para construir un paquete abre una consola, simplemente ve al directorio de FreeCAD y ejecuta debuild Una vez que el paquete está construido, puedes utilizar lintian para comprobar si el paquete contiene errores lintian your-fresh-new-freecad-package.deb (reemplaza el nombre por el del paquete que has creado)

Archivos de guión de construcción automáticos
Aquí está todo lo que necesitas para una construcción completa de FreeCAD. En un único archivo de guión y funciona en las distribuciones más recientes. El comando preguntará por la contraseña del root (para la instalación de los paquetes) y a veces para reconocer algún servidor de repositorios externo o de https-subversion. Este archivo de guión debería ejecutarse en versiones de 32 y 64 bit. Están escritos para distintas versiones, pero seguramente funcionen también en versiones posteriores con algún ligero cambio o tal cual están.

Si tienes un archivo de guión similar para tu distribución preferida, por favor envíanoslo! Lo incorporaremos a este artículo.

Ubuntu 9.10 - Karmic Koala / Ubuntu 10.04 LTS - Lucid Lynx / Ubuntu 10.10 Maveric
sudo apt-get install build-essential python libcoin60-dev libsoqt4-dev \ libxerces-c2-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev \ libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev \ libboost-serialization-dev libboost-signals-dev libboost-regex-dev libboost-thread-dev \ libqt4-dev qt4-dev-tools python2.6-dev libopencascade-dev libsoqt4-dev \ libode-dev subversion cmake libeigen2-dev libsimage-dev python-qt4 \ libtool autotools-dev automake bison flex libf2c2-dev gfortran svn co https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk freecad cd freecad cmake. make cd bin ./FreeCAD -t 0
 * 1) checkout the latest source
 * 1) go to source dir
 * 1) build configuration
 * 1) build FreeCAD
 * 1) test FreeCAD

./FreeCAD
 * 1) use FreeCAD

Ubuntu 9.04 - Jaunty Jackalope
sudo apt-get install build-essential python libcoin40-dev libsoqt4-dev \ libxerces-c2-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev \ libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev \ libboost-serialization-dev libboost-signals-dev libboost-regex-dev \ libboost-thread-dev libqt4-dev qt4-dev-tools python2.6-dev \ libsimage-dev libopencascade-dev \ libsoqt4-dev libode0-dev subversion cmake libeigen2-dev python-pivy \ libtool autotools-dev automake svn co https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk freecad cd freecad cmake. make cd bin ./FreeCAD -t 0
 * 1) get the needed tools and libs
 * 1) checkout the latest source
 * 1) go to source dir
 * 1) build configuration
 * 1) build FreeCAD
 * 1) test FreeCAD

OpenSuse 11.2
Este archivo de guión no funciona de momento porque:
 * libXerces-c-devel parece haber desaparecido....

sudo zypper install gcc cmake subversion OpenCASCADE-devel \ libXerces-c-devel python-devel libqt4-devel python-qt4 \ Coin-devel SoQt-devel boost-devel libode-devel libQtWebKit-devel \ libeigen2-devel gcc-fortran f2c svn co https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk freecad cd freecad cmake. nice make cd bin ./FreeCAD -t 0
 * 1) install needed packages for development
 * 1) get the source
 * 1) go to source dir
 * 1) build configuration
 * 1) build FreeCAD
 * 1) test FreeCAD

OpenSuse 11.1
sudo zypper -p http://packman.unixheads.com/suse/11.1/ sudo zypper install gcc cmake subversion OpenCASCADE-devel \ libXerces-c-devel python-devel libqt4-devel python-qt4 \ Coin-devel SoQt-devel boost-devel libode-devel libQtWebKit-devel \ libeigen2-devel svn co https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk freecad cd freecad cmake. nice make cd bin ./FreeCAD -t 0
 * 1) additional repository (for OpenCascade)
 * 1) install needed packages for development
 * 1) get the source
 * 1) go to source dir
 * 1) build configuration
 * 1) build FreeCAD
 * 1) test FreeCAD

Debian Squeeze
sudo apt-get install build-essential python libcoin60-dev libsoqt4-dev \ libxerces-c2-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev \ libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev \ libboost-serialization-dev libboost-signals-dev libboost-regex-dev \ libqt4-dev qt4-dev-tools python2.5-dev \ libsimage-dev libopencascade-dev \ libsoqt4-dev libode-dev subversion cmake libeigen2-dev python-pivy \ libtool autotools-dev automake libf2c2-dev gfortran svn co https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk freecad cd freecad cmake. make cd bin ./FreeCAD -t 0
 * 1) get the needed tools and libs
 * 1) checkout the latest source
 * 1) go to source dir
 * 1) build configuration
 * 1) build FreeCAD
 * 1) test FreeCAD