[ feedback] 用deepin-ide编译deepin-ide
Tofloor
poster avatar
sshnuke
deepin
2023-09-05 16:35
Author

既然deepin-ide已经出来了,那么我们不如来试试用魔法打败魔法,用deepin-ide编译deepin-ide

首先不管先有鸡还是先有蛋,我们得先有deepin-ide才能编译一个deepin-ide出来

这里我们直接使用github上已经提供的构建好的deepin-unioncode的deb包来安装

之前测试在deepin v23上直接安装这个deb是缺依赖的,为了节省时间我就直接在uos v20 home 22.0上安装成功了(uos 20 pro 1060也实测ok,deepin 20.x应该同理也行)

然后我们下载gitee上的deepin-unioncode源码好了,这个下起来快些

git clone https://gitee.com/deepin-community/deepin-unioncode

接着我们打开刚安装好的deepin-unioncode,来导入deepin-unioncode的工程文件(CMakeList)

这里我们先打开deepin-unioncode的工具-选项来确认机器上的cmake和相关工具已经安装好了,如果没有的话需要安装

sudo apt install build-essential image.png

然后我们文件-打开工程-C/C++-cmake来打开我们刚刚下载的deepin-unioncode工程文件image.png

image.png

image.png

打开后deepin-unioncode会预扫描cmake文件,检查依赖项,因为我们是白板家庭版,会缺少一堆依赖包没装,所以第一次打开是这样的

image.png

这是在提醒我们有依赖包没装

经过我一番尝试凑齐了需要安装的依赖包清单

sudo apt install qtbase5-dev qttools5-dev-tools qttools5-dev lxqt-build-tools clang doxygen libjsoncpp-dev libclang-7-dev libqt5script5 qtscript5-dev

全部安装完后我们再次打开工程,可以看到不再报错了

image.png

那么我们Ctrl-B,编译开始!

image.png

居然有违规内容发不出图,那么编译过程大家就自行脑补吧

Reply Favorite View the author
All Replies
2 / 2
To page
cz012273
deepin
2023-12-22 15:36
#21

11月15日,同样方法处理后成功!

Reply View the author
cz012273
deepin
2023-12-23 03:07
#22
cz012273

11月14日,在将src/plugins/recent/mainframe/displayitemdelegate.cpp中下面这句注释掉之后,编译通过!
#include

#include 尖括号DSizeMode尖括号

(Markdown编辑器不支持输入尖括号)

Reply View the author
cz012273
deepin
2023-12-23 03:10
#23

同上,11月16日编译成功!

界面已经进化成这样了😄
截图_deepin-unioncode_20231222193156.png

Reply View the author
cz012273
deepin
2023-12-23 05:09
#24

11月17日失败了,错误提示如下:

/home/CZDNUOS/Downloads/deepin-unioncode-1117/deepin-unioncode-abe624435f52036a817d67f18df23122e656c1ff/src/plugins/core/mainframe/windowkeeper.cpp: In member function ‘void WindowKeeper::switchWidgetNavigation(const QString&)’:
/home/CZDNUOS/Downloads/deepin-unioncode-1117/deepin-unioncode-abe624435f52036a817d67f18df23122e656c1ff/src/plugins/core/mainframe/windowkeeper.cpp:506:52: error: call of overloaded ‘DIconButton()’ is ambiguous
             DIconButton *iconBtn = new DIconButton();
                                                    ^
In file included from /usr/include/libdtk-5.5.23/DWidget/DIconButton:1,
                 from /usr/include/libdtk-5.5.23/DWidget/dfloatingmessage.h:29,
                 from /usr/include/libdtk-5.5.23/DWidget/DFloatingMessage:1,
                 from /usr/include/libdtk-5.5.23/DWidget/dmainwindow.h:22,
                 from /usr/include/libdtk-5.5.23/DWidget/DMainWindow:1,
                 from /home/CZDNUOS/Downloads/deepin-unioncode-1117/deepin-unioncode-abe624435f52036a817d67f18df23122e656c1ff/src/plugins/core/mainframe/windowkeeper.h:19,
                 from /home/CZDNUOS/Downloads/deepin-unioncode-1117/deepin-unioncode-abe624435f52036a817d67f18df23122e656c1ff/src/plugins/core/mainframe/windowkeeper.cpp:8:
/usr/include/libdtk-5.5.23/DWidget/diconbutton.h:44:14: note: candidate: ‘Dtk::Widget::DIconButton::DIconButton(Dtk::Widget::DStyle::StandardPixmap, QWidget*)’
     explicit DIconButton(DStyle::StandardPixmap iconType = static_cast(-1), QWidget *parent = nullptr);
              ^~~~~~~~~~~
In file included from /usr/include/libdtk-5.5.23/DWidget/DIconButton:1,
                 from /usr/include/libdtk-5.5.23/DWidget/dfloatingmessage.h:29,
                 from /usr/include/libdtk-5.5.23/DWidget/DFloatingMessage:1,
                 from /usr/include/libdtk-5.5.23/DWidget/dmainwindow.h:22,
                 from /usr/include/libdtk-5.5.23/DWidget/DMainWindow:1,
                 from /home/CZDNUOS/Downloads/deepin-unioncode-1117/deepin-unioncode-abe624435f52036a817d67f18df23122e656c1ff/src/plugins/core/mainframe/windowkeeper.h:19,
                 from /home/CZDNUOS/Downloads/deepin-unioncode-1117/deepin-unioncode-abe624435f52036a817d67f18df23122e656c1ff/src/plugins/core/mainframe/windowkeeper.cpp:8:
/usr/include/libdtk-5.5.23/DWidget/diconbutton.h:43:14: note: candidate: ‘Dtk::Widget::DIconButton::DIconButton(QStyle::StandardPixmap, QWidget*)’
     explicit DIconButton(QStyle::StandardPixmap iconType = static_cast(-1), QWidget *parent = nullptr);
              ^~~~~~~~~~~
/usr/include/libdtk-5.5.23/DWidget/diconbutton.h:42:14: note: candidate: ‘Dtk::Widget::DIconButton::DIconButton(QWidget*)’
     explicit DIconButton(QWidget *parent = nullptr);
              ^~~~~~~~~~~
19:40:12: make[2]: 离开目录“/home/CZDNUOS/Downloads/deepin-unioncode-1117/build-deepin-unioncode-abe624435f52036a817d67f18df23122e656c1ff-Desktop-Release”
make[2]: *** [src/plugins/core/CMakeFiles/plugin-core.dir/build.make:144:src/plugins/core/CMakeFiles/plugin-core.dir/mainframe/windowkeeper.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:1317:src/plugins/core/CMakeFiles/plugin-core.dir/all] 错误 2
19:40:12: make[1]: 离开目录“/home/CZDNUOS/Downloads/deepin-unioncode-1117/build-deepin-unioncode-abe624435f52036a817d67f18df23122e656c1ff-Desktop-Release”
make: *** [Makefile:133:all] 错误 2
进程/usr/bin/cmake退出,代码为2。
Reply View the author
cz012273
deepin
2023-12-23 14:06
#25

11月17日,在将src/plugins/core/mainframe/windowkeeper.cpp文件中的DIconButton *iconBtn = new DIconButton()修改为DIconButton *iconBtn = new DIconButton(static_castQStyle::StandardPixmap(-1),nullptr)后,编译通过!

但左侧有两个图标没了……
截图_deepin-unioncode_20231223061003.png

Reply View the author
cz012273
deepin
2023-12-24 00:21
#26

11月20日编译成功!里面没有下面这句代码了😄

DIconButton *iconBtn = new DIconButton();
Reply View the author
cz012273
deepin
2023-12-24 08:23
#27

11月21日编译成功!

Reply View the author
cz012273
deepin
2023-12-25 02:35
#28

直接编译最后的版本,虽然有出错提示,但仍然编译出来了,并且能运行。(功能是否有缺失尚不知道)

截图_deepin-unioncode_20231224182819.png

Reply View the author
cz012273
deepin
2023-12-26 07:14
#29

经试验,目前UOS家庭版(22.0)下能完整编译的为11月30日版本(部分文件代码经过变通处理)。

此后版本提示src/plugins/binarytools/mainframe/binarytoolsconfigview.cpp文件中
引用的dinputdialog.h出错,而该文件为系统DTK所带,暂时无法解决。

(个别版本能编译出来,但缺少CodeGeeX插件)

截图_deepin-unioncode_20231225231232.png

Reply View the author
2 / 2
To page