Compilación de código fuente FreeCAD v0.18 y 0.19 bajo VS2017 / 19

 

Este artículo presenta cómo compilar FreeCad 0.18 con vs2017 2019 en Windows. Cuando escribí este artículo, se lanzó la versión 0.19. Usé el método presentado en este artículo para compilar y ejecutar la versión 0.19. Los errores en la compilación eran los mismos, pero no se corrigieron.

Preparación de requisitos previos

Soy Windows 10 (el requisito de instalación es Windows 7 o superior) y Visual Studio 2017 está instalado en la computadora. De hecho, Visual Studio 2019 puede ser mejor. Se dice que la versión 0.18 fue desarrollada sobre la versión vs2013, en ese caso es más apropiado utilizar el documento oficial: https://wiki.freecadweb.org/Compile_on_Windows .

Tengo cmake 3,16 y git en mi computadora. Si no los tiene, se recomienda descargarlos e instalarlos a continuación.

estudio visual 2019:

https://visualstudio.microsoft.com/downloads/

hacer 

https://cmake.org/download/

Se recomienda que la versión 18.5, el funcionario dijo que no es la última, debería ser: 3.11.x-3.18.x.

git:

https://git-scm.com/downloads

instalación sdk

El SDK de vs2017 se instala con el instalador de Visual Studio. Se debe seleccionar al menos un SDK relativamente nuevo y todos los SDK deben ocupar más de 10G de espacio. Si el SDK no está instalado, se informará un error en la primera ronda, lo que indica que no hay SDK.

Preparación del espacio en el disco duro: Las siguientes dos descargas requieren cada una de 300M de espacio. Después de la descompresión, el código ocupa 500M y la biblioteca de soporte es de 3.5G. Después de compilar una como la versión, está cerca de 10G. 

Descargar código fuente

La descarga contiene 2 partes, una es la descarga del código fuente,

El enlace de descarga del código fuente es:

Repositorio oficial de Githubhttps://github.com/FreeCAD/FreeCAD.git

repositorio espejo fastgithttps://hub.fastgit.org/FreeCAD/FreeCAD.git

repositorio espejo gitclonehttps://gitclone.com/github.com/FreeCAD/FreeCAD.git

almacén espejo cnpmjshttps://github.com.cnpmjs.org/FreeCAD/FreeCAD.git

Clona el código  git clone https://github.com/FreeCAD/FreeCAD.git (cambia el espejo si no se mueve)

Usé el oficial, que es el primero. La versión específica debería ser esta: https://github.com/FreeCAD/FreeCAD/releases/tag/0.18.5

Y ahora la versión 0.19 es: https://github.com/FreeCAD/FreeCAD/tree/releases/FreeCAD-0-19

Libpack admite la descarga de paquetes de bibliotecas

La compilación de Freecad requiere algunas bibliotecas de soporte, como OpenCASCADe, Coin y Qt.

El paquete de instalación de la biblioteca de soporte empaquetado en Windows, la dirección de descarga es:

El Libpack oficial se puede descargar desde Github Release https://github.com/FreeCAD/FreeCAD/releases

Libpack creado por miembros de la comunidad  https://github.com/apeltauer/FreeCAD/releases(incluido OpenCascade 7.5)

Lo que descargo es: https://github.com/apeltauer/FreeCAD/releases/tag/LibPack_12.1.4

Su contenido es:

Visual Studio 2017
OpenSSL 3.0.0
Curl
Qt 5.12.1
PySide2 compilado contra Qt 5.12.1
Coin3D 4.0
Pivy
Python 3.6.8
OpenCascade 7.3
Boost 1.67 (incluidos los archivos de depuración compilados contra python_d.exe)

El título dice que está un poco desactualizado, pero es vs2017 en mi computadora, y no encontré una actualización. vs2019 está actualizado.

proyecto de configuración de cmake

Esta es la parte más importante de la compilación y su contenido es el proyecto a compilar.

Primero descomprime la descarga de arriba, la mía

El código fuente se encuentra en: C: \ study17 \ FreeCAD18,

La biblioteca de soporte se encuentra en: C: \ study17 \ FreeCADLibs_12.1.4_x64_VC15

Ejecute cmake, en el lugar del código fuente, ingrese al directorio donde se descomprime y libera nuestro código fuente, donde está el resultado compilado, agrego un / bin o / build al directorio del código fuente para asegurar que esté separado del código fuente , u otros directorios también se pueden.

Haga clic en la figura (configuración) y aparecerá el cuadro de diálogo de selección del compilador del proyecto. Por supuesto, el especificado es: visual studio 15 2017, debemos prestar atención a elegir x64 aquí, porque nuestra biblioteca de soporte es x64, por lo que debemos elegir x64 aquí. 

Una vez que lo haya seleccionado, haga clic en Finalizar para iniciar la configuración. Aparece el error, no importa, necesitamos establecer la ruta del paquete de la biblioteca de soporte: esto está en el proyecto FREECAD, el siguiente FREECAD_LIBPACK_DIR, copia o ingresa el directorio libpack aquí.

Hay 3 elementos que contienen copia. Verifíquelos para que los archivos de apoyo estén en el directorio del programa después de la edición. Sin embargo, esta opción no aparecerá por primera vez, después de la configuración, estará disponible nuevamente.

Mi primera configuración me indica que necesito instalar el SDK. Esto es lo que quiero decir con la instalación del SDK en la premisa anterior.

Otro punto importante es: En el proyecto BUILD, debe verificar BUILD_QT5:

Si desea crear un paquete de instalación, debe configurar CMAKE_INSTALL_PREFIX, que no está configurado o puede ser un directorio de archivos de programa.

 

También es necesario cancelar BUILD_JTREADER

https://blog.csdn.net/libaineu2004/article/details/95623091  Este blog dice que elija verificar BUILD_SANDBOX, BUILD_TEMPLATE, se estima que necesita esta función, solo verifíquela. No seleccionarlo simplemente carece de esta característica.

Configure nuevamente, si informa un error, mire el error y configure nuevamente, estaba bien la primera vez y muestra Config Done

Created install commands for INSTALL target.

=================================================
Now run 'cmake --build C:/study17/FreeCAD-0.19/build' to build FreeCAD
=================================================

Configuring done

Luego haga clic en Generar para generar el proyecto. Una vez generado el proyecto, puede abrir Projet. No sé cómo abrir el proyecto está vacío.

Pero no importa, abro Visual Studio 2017 por mí mismo y luego abro el archivo SLN.

Compila el proyecto

No puedo abrir el proyecto directamente en cmake, así que abra vs2017 y luego abra freecad.sln:

La compilación es realmente muy simple, elegí el primer proyecto: FreecadBase para compilar este por separado, porque comencé a descargar y compilar 0.19_pre. Esta compilación falla, y muchas más tarde no funcionarán. Si toda la compilación dura mucho tiempo, al final no funcionará. La opción que compilo es Liberar. No quiero depurar, así que lo compilaré primero.

Una vez completada la compilación, todos los archivos build. Pero compilar lleva mucho tiempo, mi computadora usó 3 horas.

Hubo un error en la primera compilación y fallaron 3 proyectos. Comprueba el motivo:

110>Generating Code...
110>LINK : fatal error LNK1181: cannot open input file '..\App\Release\_PartDesign.lib'
110>Done building project "PartDesignGui.vcxproj" -- FAILED.
111>------ Build started: Project: ALL_BUILD, Configuration: Release x64 ------
111>Building Custom Rule C:/study17/FreeCAD-0.19/CMakeLists.txt
112>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------
112>Project not selected to build for this solution configuration 
========== Build: 106 succeeded, 2 failed, 1 up-to-date, 4 skipped ==========

El mensaje de error es así:

5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1237): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1889): error C2001: newline in constant
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1891): error C3688: invalid literal suffix '鈥unsupported'; literal operator or literal operator template 'operator ""鈥unsupported' not found
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1891): error C2143: syntax error: missing ')' before 'std::string'
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1891): error C2143: syntax error: missing ';' before 'std::string'
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1902): error C2001: newline in constant
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1904): error C3688: invalid literal suffix '鈥unsupported'; literal operator or literal operator template 'operator ""鈥unsupported' not found
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1904): error C2146: syntax error: missing ')' before identifier 't'
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1904): error C2146: syntax error: missing ';' before identifier 't'
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1931): error C3688: invalid literal suffix '鈥with'; literal operator or literal operator template 'operator ""鈥with' not found
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1931): error C2143: syntax error: missing ';' before ':'
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1931): error C2059: syntax error: ':'
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1931): error C2017: illegal escape sequence
5>C:\study17\FreeCAD-0.19\src\Mod\PartDesign\App\FeatureHole.cpp(1931): error C2001: newline in constant
5>Generating Code...
5>Done building project "PartDesign.vcxproj" -- FAILED.

 

FearureHole.cpp tiene caracteres confusos en este archivo. Según el mensaje de error y el número de línea, es fácil encontrar el lugar equivocado.

1889:throw Base::IndexError(std::string("Thread type ‘") + thread_type_string + "’ unsupported");

1902: throw Base::IndexError(std::string("Cut type ‘") + cut_type_string + "’ unsupported");

1931:std::cerr << "Failed reading ‘" << f.filePath() << "’ with: "<< e.what() << "\n";


Excluyendo estos pocos errores, toda la compilación es exitosa.

========== Build: 3 succeeded, 0 failed, 106 up-to-date, 4 skipped ==========

Si desea crear el paquete de instalación, haga clic con el botón derecho en el proyecto INSTALL después de que toda la compilación sea exitosa, y luego Projecct Only-> build only INSTALL, esto llevará algún tiempo, copie todos los archivos requeridos al directorio especificado por cmake_install_prefix. 

Ejecutar verificación

Vaya a bin debajo de bin y haga clic en freecad.exe directamente para iniciar la interfaz de freecad.

Por primera vez, no se marcaron las 3 opciones de copia, lo que indica que falta la información del archivo.

Más tarde, después de verificar, el proyecto se genera y compila, lo que lleva un poco de tiempo.

Al compilar la versión 0.19 más tarde, olvidé revisarla nuevamente, pero se compiló nuevamente. Creo que el archivo se copiará en la configuración después de verificarlo. Si la replicación se completa sin formar un proyecto, entonces no formaré un proyecto, está realmente bien.

Entonces, en caso de que olvide verificar las 3 copias, no importa, solo verifique la configuración y deje que la configuración complete la copia, no es necesario formar un nuevo proyecto. copy no tiene nada que ver con el proyecto, solo le ayuda a completar la copia necesaria al configurar.

Solución de problemas

Esto se refiere principalmente al caso de falla de configuración de cmake

Lo configuré con éxito sin problemas por primera vez, pero luego siempre hubo varios problemas que hicieron que la configuración fallara, principalmente porque las diversas configuraciones de ruta eran incorrectas. Por ejemplo, la siguiente situación:

Este es un problema de ruta de Python. Muchos problemas son causados ​​por una configuración deficiente de Python:

El siguiente es el problema del impulso: 

Fue muy deprimente encontrarme con esta situación, luego comparé la configuración original y la configuré directamente para corregirla, esto fue realmente efectivo.

Es posible que no tenga éxito la primera vez, entonces puede verificar la información de entrada a continuación. Por lo general, es el nombre del archivo o el directorio de su directorio libpack Mi directorio libpack es C: /study17/FreeCADLibs_12.1.4_x64_VC15.

Se trata de compilar.

Supongo que te gusta

Origin blog.csdn.net/leon_zeng0/article/details/114157473
Recomendado
Clasificación