热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VS2019编译FreeCAD019流程及可能遇到的__imp__Py_NegativeRefcount问题解决办法

前期准备:VS2019cmakeFreeCAD0-19代码FreeCAD依赖库(注意依赖库和代码是两个东西)FreeCAD与对应的依赖库版本应一致,如果是已有项目则去找原来项目的F

前期准备:

VS2019

cmake

FreeCAD 0-19代码

FreeCAD依赖库(注意依赖库和代码是两个东西)

FreeCAD与对应的依赖库版本应一致,如果是已有项目则去找原来项目的FreeCAD和依赖库,否则都下载最新的版本。

我的FreeCAD依赖库版本:12.5.1 x64

 

第一步,cmake编译:

首先设定好编译的源文件夹和目标文件夹,通常在源文件夹下新建build文件夹作为目标文件夹。再选上Grouped和Advanced两个选项,点击左下Configure配置。注意选择x64以及对应的VS版本。

第一次配置必定报错,此时按下图设置好FreeCAD的库路径以及Build里要建立的各个项目:

注意!如果你的电脑曾下载过python,可能cmake会自动选择python路径。但有可能未包含debug版本的python库,此时编译VS2019会报错并提示 __imp__Py_NegativeRefcount未识别。如下图是包含了debug版的路径配置:

查看你安装的python lib文件夹里是否有**_d.lib,若没有,需使用python安装器另行安装(安装器删除的话就再下对应版本的安装器或删了python重新安装,安装时选第二个自定义安装,把pre...和后面几个选项都点上,注意python版本也要和FreeCAD要求的对应,不然cmake编译时会报错告诉你要求的版本)

 

第二步,打开build点击FreeCAD.sln加载项目,右键All_build编译。

编译仍可能出现各种问题,想办法解决。

 

第三步,复制对应的文件到FreeCAD下

1.把

D:\FreeCADLibs_12.5.1_x64_VC17\bin

D:\FreeCADLibs_12.5.1_x64_VC17\data

D:\FreeCADLibs_12.5.1_x64_VC17\resources

拷贝到源文件工程目录D:\FreeCAD-releases-FreeCAD-0-19\build\

2.把

D:\FreeCADLibs_12.5.1_x64_VC17\plugins\iconengines

D:\FreeCADLibs_12.5.1_x64_VC17\plugins\imageformats

D:\FreeCADLibs_12.5.1_x64_VC17\plugins\platforms

D:\FreeCADLibs_12.5.1_x64_VC17\plugins\printsupport

D:\FreeCADLibs_12.5.1_x64_VC17\plugins\sqldrivers

拷贝到源文件工程目录D:\FreeCAD-releases-FreeCAD-0-19\build\bin

3.把

D:\FreeCADLibs_12.5.1_x64_VC17\translations\qtwebengine_locales

拷贝到源文件工程目录D:\FreeCAD-releases-FreeCAD-0-19\build\bin



推荐阅读
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 本文介绍了一种方法,通过使用Python的ctypes库来调用C++代码。具体实例为实现一个简单的加法器,并详细说明了从编写C++代码到编译及最终在Python中调用的全过程。 ... [详细]
  • 深入理解Java SE 8新特性:Lambda表达式与函数式编程
    本文作为‘Java SE 8新特性概览’系列的一部分,将详细探讨Lambda表达式。通过多种示例,我们将展示Lambda表达式的不同应用场景,并解释编译器如何处理这些表达式。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 汇编语言:编程世界的始祖,连C语言都敬畏三分!
    当C语言还在萌芽阶段时,它首次接触到了汇编语言,并对其简洁性感到震惊。尽管汇编语言的指令极其简单,但它却是所有现代编程语言的基础,其重要性不言而喻。 ... [详细]
  • 本文将详细探讨 Python 编程语言中 sys.argv 的使用方法及其重要性。通过实际案例,我们将了解如何在命令行环境中传递参数给 Python 脚本,并分析这些参数是如何被处理和使用的。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • flea,frame,db,使用,之 ... [详细]
  • 深入理解Dockerfile及其作用
    Dockerfile是一种文本格式的配置文件,用于定义构建Docker镜像所需的步骤。通过使用`docker build`命令,用户可以将Dockerfile中的一系列指令转换成一个可执行的Docker镜像。 ... [详细]
author-avatar
拿鼠z标的那只手很冷
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有