Cura源码在Ubuntu15.04上编译脚本(成功)

Cura是著名的3D打印切片和控制软件。新的版本采用Qt和Python进行了重构,界面变化也非常大,目前还在开发中,运行问题还有不少。这里介绍如何从源代码进行Cura的编译,可以抢先体验新版的界面设计和根据需要进行订制。

这个把相关的脚本都集成到一起了。做了几个重要的改进,基本可以成功运行了。

官方原脚本在这里:https://github.com/Ultimaker/cura-build

主要的改进包括:

1、可以自动判断目录,如没有自动创建,如有则进行源码更新。原脚本安装后更新需要手工一步步进行,很麻烦。

2、改变gtest的安装源到github,原来的是从google下载,由于国内访问不到会导致编译出错。

3、合并 plugins目录,将Uranium\plugins复制到Cura\plugins下,避免找不到插件的错误。

注意:

1、进libArcus将Cmakelists.txt里的add_subdirectory(examples)这一行注释掉,要不编译不过去。
2、目前CuraEngine编译还有些问题,无法执行切片操作。

把下面的内容保存到cura.sh,然后sudo chmod +x cura.sh添加执行权限,然后./cura.sh就Ok了。需要的软件会自动下,时间较长,需要耐心等待。

#!/bin/bash
# This is a script which get the latest git repo and build them.
#
# Tested under ubuntu 15.04, lower versions don‘t have PyQT 5.2.1 which is required by cura

cd ~
if [ ! -d "dev" ]; then
    mkdir dev
fi
cd dev

sudo apt-get install -y git cmake cmake-gui autoconf libtool python3-setuptools curl python3-pyqt5.* python3-numpy qml-module-qtquick-controls

#protobuf.
#https://github.com/google/protobuf.git

echo "================================="
echo "Install Protobuf."
if [ ! -d "protobuf" ]; then
    git clone https://github.com/Ultimaker/protobuf.git
    cd protobuf
else
    cd protobuf
    git pull        
fi
echo "================================="
echo "get gtest."
if [ ! -d "gtest" ]; then
    git clone https://github.com/kgcd/gtest.git
else
    git pull
fi
echo "================================="
echo "get gmock."
if [ ! -d "gmock" ]; then
    git clone https://github.com/krzysztof-jusiak/gmock.git
else
    git pull        
fi
echo "Build Protobuf."
./autogen.sh
./configure --prefix=/usr
make -j4
sudo make install
sudo ldconfig
cd python
python3 setup.py build
sudo python3 setup.py install
cd ../..

echo "================================="
echo "Install libArcus."
if [ ! -d "libArcus" ]; then
    git clone https://github.com/Ultimaker/libArcus
    cd libArcus
else
    cd libArcus
    git pull        
fi
if [ ! -d "build" ]; then
  mkdir build
fi
cd build
#cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages
cmake .. -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages
make -j4
sudo make install
cd ../../

echo "================================="
echo "Install CuraEngine."
if [ ! -d "CuraEngine" ]; then
    git clone https://github.com/Ultimaker/CuraEngine.git
    cd CuraEngine
else
    cd CuraEngine
    git pull        
fi
if [ ! -d "build" ]; then
  mkdir build
fi
cd build
#cmake .. -DCMAKE_INSTALL_PREFIX=/usr
cmake .. 
make -j4
sudo make install
cd ../../

echo "================================="
echo "Install Uranium."
if [ ! -d "Uranium" ]; then
    git clone https://github.com/Ultimaker/Uranium.git
    cd Uranium
else
    cd Uranium
    git pull        
fi
if [ ! -d "build" ]; then
  mkdir build
fi
cd build
#cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages -DURANIUM_PLUGINS_DIR=/usr/lib/python3.4/dist-packages
cmake .. -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python3.4/dist-packages -DURANIUM_PLUGINS_DIR=/usr/lib/python3.4/dist-packages
sudo make install
cd ../..

echo "================================="
echo "Install Cura."
if [ ! -d "Cura" ]; then
    git clone https://github.com/Ultimaker/Cura.git
    cd Cura
else
    cd Cura
    git pull        
fi
cd ..
echo "Build finished."

echo "============================================================================"
echo "Merge Resource into Cura/resources/"
cp -rv Uranium/resources/* Cura/resources/
echo "Merge Plugins into Cura/plugins/"
cp -rv Uranium/plugins/* Cura/plugins/
echo "Link:"$PWD"/CuraEngine/build/CuraEngine"
sudo ln -s $PWD/CuraEngine/build/CuraEngine /usr/bin/CuraEngine

echo "Starting Cura......"
cd Cura
python3 cura_app.py
echo "You need add to /etc/profile:export PYTHONPATH=/usr/lib/python3/dist-packages"
echo "============================================================================="
时间: 2024-08-01 17:22:56

Cura源码在Ubuntu15.04上编译脚本(成功)的相关文章

3D打印控制软件Cura源码在UbuntuKylin15.04上编译

Cura在Linux上的版本总是下载不了,准备自己从源码进行编译. 下面是从https://github.com/ultimaker上下载的编译脚本.原始的脚本有一些问题,自己做了一些修改,如下: #!/bin/bash # This is a script which get the latest git repo and build them. # # Tested under ubuntu 15.04, lower versions don't have PyQT 5.2.1 which 

在Ubuntu Server14.04上编译Android6.0源码

此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把Android6.0的源码,但是昨天编译完之后已经很晚了,没来得及记录编译的步骤,今天才慢悠悠地来记录一下我在Ubuntu Server14.04上编译Android6.0源码的步骤.好了,废话不多说,我们开始吧! 步骤一: 安装Ubuntu系统.我们既可以通过虚拟机的方式安装Ubuntu,也可以直接在

【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程

原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一直很给力的,但这次让我伤心欲绝啊. 关于Linux(ubuntu14.04)上编译Android源码的环境搭建详细过程都是在sublime text中编辑好的,无奈,这次的数据丢失让我不得不重新来回想手打一次了.可能很多细节问题,这次重新编辑文章时不会记得那么清晰了,还请有问题的朋友在下面留言给我就

Help-IntelliJIDEA-2019-基础设置:10.Maven自动下载源码包,告别反编译,直接上源码注释

ylbtech-Help-IntelliJIDEA-2019-基础设置:10.Maven自动下载源码包,告别反编译,直接上源码注释 1.返回顶部 1. 10.Maven自动下载源码包,告别反编译,直接上源码注释Configure | Settings | Build, Execution, Deployment | Build Tools | Maven | Importing将Automatically Download 的 Source 勾上. 2. 2.返回顶部 3.返回顶部 4.返回顶部

Android源码浅析(三)——Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机

Android源码浅析(三)--Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机 最近比较忙,而且又要维护自己的博客,视频和公众号,也就没仔细的梳理源码的入门逻辑,今天也就来讲一个源码的玩法,各位看官,一起学习学习! 看本篇博客之前,先看下我的前面两篇 Android源码浅析(一)--VMware Workstation Pro和Ubuntu Kylin 16.04 LTS安装配置 Android源码浅析(二)--Ubuntu Roo

Ubuntu15.04上部署python3.4+django1.8.8+mysql5.7+uwsgi+nginx

经过无数的百度,花了一天的时间,艰难的把django项目给部署到了Ubuntu15.04上.废话少说了,直接贴上部署步骤: 一.python安装 1.www.python.org下载 如下载的为 Python-3.4.3.tar.xz 2.解压: [email protected]:/home/dodo/Downloads/# xz -d  Python-3.4.3.tar.xz命令后得到Python-3.4.3.tar [email protected]:/home/dodo/Download

Yarn源码分析之MRAppMaster上MapReduce作业处理总流程(一)

我们知道,如果想要在Yarn上运行MapReduce作业,仅需实现一个ApplicationMaster组件即可,而MRAppMaster正是MapReduce在Yarn上ApplicationMaster的实现,由其控制MR作业在Yarn上的执行.如此,随之而来的一个问题就是,MRAppMaster是如何控制MapReduce作业在Yarn上运行的,换句话说,MRAppMaster上MapReduce作业处理总流程是什么?这就是本文要研究的重点. 通过MRAppMaster类的定义我们就能看出

《java.util.concurrent 包源码阅读》04 ConcurrentMap

Java集合框架中的Map类型的数据结构是非线程安全,在多线程环境中使用时需要手动进行线程同步.因此在java.util.concurrent包中提供了一个线程安全版本的Map类型数据结构:ConcurrentMap.本篇文章主要关注ConcurrentMa接口以及它的Hash版本的实现ConcurrentHashMap. ConcurrentMap是Map接口的子接口 public interface ConcurrentMap<K, V> extends Map<K, V> 与

《UNIX环境高级编程》第二版源码在Ubuntu下的编译

涂鸦一文,自娱娱乐. 无题 草舍如沙天地卷,且放白鹿青崖间.   望闻问切麻雀全,漫卷诗书彩云乡.   天地琴心天地曲,天际行将遥望远.   大浪淘沙鲁智深,乱云飞渡仍从容. <UNIX环境高级编程>第二版源码在Ubuntu下的编译