源码怎么用,hbuilder移动app教程

Linux发行版的一个最大的优点就是它的包管理器和相关的软件库。通过它们提供的资源和工具,你才能够以完全自动化的方式在你的计算机上下载和安装软件。 但是,尽管付出了很多的努力,包维护者仍然没法照顾好每种情况,也不可能将所有的可用软件都打包进去。因此,仍然存在需要你自已去编译和安装一个新软件的情形。对于我来说,到目前为止,最主要的原因是,我编译一些软件是我需要去运行一个特定的版本。或者是我想去修改源…

Linux 桌面操作系统的一个较大的特点便是它的包管理工具和相应的软件库。根据他们带来的自然资源和工具,你才能以彻底智能化的方法在你的计算机系统上免费下载和安装程序。

可是,虽然投入了许多的勤奋,包维护者依然无法照顾好每一种状况,也不太可能将全部的能用手机软件都装包进来。因而,依然存有想要你自己去编译程序和组装一个新软件的情况。针对我来说,到现在为止,最首要的因素是,我编译程序一些手机软件就是我必须去运作一个特殊的版本。或是是我要去改动源代码或应用一些需要的编译程序选择项。

假如你也属于后一种状况,那么你已经了解你应该怎么做了。可是,针对大部分的 Linux 客户而言,第一次从源代码中编译程序和组装一个软件看起来就像一个新手入门典礼:它让很多人害怕恐惧;可是,假如你能战胜困难,你将很有可能进到一个全新升级的全球,而且,假如你保证了,那麼你将变成小区中具有权利的一部分人。

◈ 提议阅读文章:如何在 Ubuntu 中组装和删除软件(彻底手册)[1]

A. 在 Linux 中从源代码逐渐安装程序

这恰好是我们要做的。由于这篇文章的必须,我想在我的系统上组装 NodeJS[2] 8.1.1。它是个彻底现实的版本。这一版本在 Debian 库房中并没有:

sh$ apt-cache madison nodejs | grep amd64 nodejs | 6.11.1~dfsg-1 | http://deb.debian.org/debian experimental/main amd64 Packages nodejs | 4.8.2~dfsg-1 | http://ftp.fr.debian.org/debian stretch/main amd64 Packages nodejs | 4.8.2~dfsg-1~bpo8 1 | http://ftp.fr.debian.org/debian jessie-backports/main amd64 Packages nodejs | 0.10.29~dfsg-2 | http://ftp.fr.debian.org/debian jessie/main amd64 Packages nodejs | 0.10.29~dfsg-1~bpo70 1 | http://ftp.fr.debian.org/debian wheezy-backports/main amd64 Packages

第 1 步:从 GitHub 上获得源代码

像大部分开源软件一样,NodeJS 的源代码可以在 GitHub:https://github.com/nodejs/node 上寻找。

因此,大家立即现在开始。

详解如何用源代码安装软件,以及如何卸载它

The NodeJS official GitHub repository

假如不了解 GitHub[4],git[5] 或是提及的其他 版本管理方法系统[6]包括了这种系统的源代码,及其数年来对此软件的任何改动的历史时间。乃至可以回溯到此软件的最开始版本。针对开发商而言,保存它的历史时间版本有很多益处。现如今对于我而言,在其中一个益处是可以获得一切一个给出时间点的新项目源代码。更确切地说,我能获得我所要的 8.1.1 公布时的源代码。就算从这一刻起她们拥有许多的改动。

详解如何用源代码安装软件,以及如何卸载它

Choose the v8.1.1 tag in the NodeJS GitHub repository

在 GitHub 上,你能应用 “branch” (支系)按键导航栏到这一系统的不一样版本。“支系” 和 “标识” 是 Git 中一些相应的定义[7]。总体来说,开发人员建立 “支系” 和 “标识” 来在新项目历史时间中对关键事情维持追踪,例如当她们开启一个新特点或是公布一个新版本时。在这儿先不详解了,你如今只要了解我还在找被标识为 “v8.1.1” 的版本。

详解如何用源代码安装软件,以及如何卸载它

The NodeJS GitHub repository as it was at the time the v8.1.1 tag was created

在挑选了 “v8.1.1” 标识后,网页页面被更新,最明显的变动是标识如今做为 URL 的一部分发生。此外,你也许会注意到文档更改日期也各有不同。你如今见到的源代码树是创立了 v8.1.1 标识时的编码。在某种程度上,你还可以觉得像 git 那样的版本管理方法工具是一个时光穿梭机,容许你在新项目历史时间中来回穿梭。

详解如何用源代码安装软件,以及如何卸载它

NodeJS GitHub repository download as a ZIP button

这时,大家可以下载 NodeJS 8.1.1 的源代码。你别忘记去点那一个提议的大的蓝色的按键来下载一个新项目的 ZIP 压缩文件。针对我来说,为解读的目地,我在命令中免费下载并缓解压力这一 ZIP 压缩文件。可是,假如你更喜欢应用一个 GUI[8] 工具,不必担心,你能替代下边的下令方法:

wget https://github.com/nodejs/node/archive/v8.1.1.zipunzip v8.1.1.zipcd node-8.1.1/

下载一个 ZIP 包就可以,可是假如你期待“像个权威专家一样”,我建议你立即应用 git 工具去免费下载源代码。它一点也不繁杂 — 而且假如你是第一次应用该工具,它将是一个非常好的开始,你之后将常常使用它:

# first ensure git is installed on your systemsh$ sudo apt-get install git# Make a shallow clone the NodeJS repository at v8.1.1sh$ git clone --depth 1  --branch v8.1.1  https://github.com/nodejs/nodesh$ cd node/

顺带说一下,假如您有一切问题,这篇文章的第一部分仅仅做一个整体详细介绍罢了。后边,为了更好地帮你清除疑难问题,大家将根据 Debian 和基于 RedHat 的桌面操作系统更具体地表述。

无论如何,在你应用 git 或是做为一个 ZIP 压缩包下载了源代码后,在当前目录下就拥有一样的源代码文档:

sh$ lsandroid-configure BUILDING.md common.gypi doc Makefile srcAUTHORS CHANGELOG.md configure GOVERNANCE.md node.gyp testbenchmark CODE_OF_CONDUCT.md CONTRIBUTING.md lib node.gypi toolsBSDmakefile COLLABORATOR_GUIDE.md deps LICENSE README.md vcbuild.bat

第 2 步:了解程序流程的构建系统

构建系统便是大家通常所指的“编译程序源代码”,实际上,编译程序仅仅从源代码中形成一个可采用的电脑软件的在其中一个环节。构建系统是一套工具,用以全自动处理不一样的每日任务,便于可以仅根据好多个指令就能构建全部手机软件。

尽管定义非常简单,事实上编译程序进行了许多事儿。由于不一样的新项目或是计算机语言或许有不一样的规定,或是由于程序编写者的喜恶,或是由于适用的服务平台、或是由于历史时间的缘故,等等 … 挑选或建立此外一个构建系统的缘故几乎数不尽。这方面有许多种不一样的解决方法。

NodeJS 应用一种 GNU 设计风格的构建系统[9]。这在开源项目中这是一个很风靡的挑选。从而逐渐,你将进到一段激动人心的旅途。

写下和调优一个构建系统是一个相当复杂的每日任务。可是,做为 “终端产品用户” 而言,GNU 设计风格的构建系统应用2个工具让她们可免于此难:configuremake

configure 文档是个新项目专用型的脚本制作,它将查验总体目标系统的配制和可以用作用,以保证该工程可以被构建,并最后符合现阶段服务平台的特点。

一个非常典型的 configure 每日任务的关键部位是去构建 Makefile。这一文件包含了合理构建新项目所需要的命令。

另一方面,make 工具[10],这是一个可用作一切类 Unix 系统的 POSIX 工具。它将载入新项目专用型的 Makefile 随后实行需要的实际操作去构建和组装你的程序流程。

可是,在 Linux 的全球中,你依然有一些订制你自己专用型的构建的原因。

./configure --help

configure -help 指令将展现你能用的全部配备选择项。再注重一下,这也是十分的新项目专用型。坦白说,有时,在你彻底了解每一个配备选择项的效果以前,你需要深层次到工程项目中去好好地科学研究。

但是,这儿最少有一个规范的 GNU 自动化技术工具选择项就是你该了解的,它便是显而易见的 --prefix 选择项。它与文档系统的结构分析相关,它就是你手机软件要安裝的部位。

第 3 步:文档系统结构化分析规范(FHS)

绝大多数典型性的 Linux 桌面操作系统的文档系统结构分析都遵循 文档系统结构化分析规范(FHS)[11]。

这一规范表明了你的系统中各种各样文件目录的主要用途,例如,/usr/tmp/var 这些。

当应用 GNU 自动化技术工具 和大部分其他的构建系统 时,它会把新软件默认设置组装在你的系统的 /usr/local 文件目录中。这也是依据 FHS 中 “/usr/local 等级是为网站管理员当地安装软件时采用的,它在系统软件软件升级遮盖时是可靠的。它还可以用以储放在一组服务器中共享资源,但又并没有放进 /usr 中的流程和数据信息”,因而,它是一个很好的挑选。

/usr/local 等级以一种方法拷贝了网站根目录,你能在 /usr/local/bin 这儿找到可执行文件,在 /usr/local/lib 中找到库,在 /usr/local/share 中找到构架不相干的文件,这些。

应用 /usr/local 树做为你定制安装的软件部位的唯一问题是,你的软件的文件将在这儿掺杂在一起。特别是在就是你安装了好几个软件以后,将难以去精确地追踪 /usr/local/bin/usr/local/lib 中的哪个文件究竟属于哪个软件。它尽管不容易可能会导致的问题。终究,/usr/bin 也是一样错乱的。可是,有一天你想要去卸载掉一个手工制作安装的软件时它会将变成一个问题。

要处理这个问题,我通常喜爱安装定制的软件到 /opt 根目录下。再度引入 FHS:

/opt 是为安装额外的应用软件软件包而保存的。

包安装在 /opt 下的软件包务必将它的静态数据文件放到独立的 /opt/<package> 或是 /opt/<provider> 文件目录中,这里 <package> 是常说的那一个软件名的名称,而 <provider> 处是提供的 LANANA 申请注册名称。”(LCTT 译注:LANANA 就是指 The Linux Assigned Names And Numbers Authority[12]。 )

因而,大家将在 /opt 下建立一个根目录,用以大家定制的 NodeJS 安装。而且,如果有一天我要去卸载掉它,我只是非常简单地去删掉那一个文件目录:

sh$ sudo mkdir /opt/node-v8.1.1sh$ sudo ln -sT node-v8.1.1 /opt/node# What is the purpose of the symbolic link above?# Read the article till the end--then try to answer that# question in the comment section!sh$ ./configure --prefix=/opt/node-v8.1.1sh$ make -j9 && echo ok# -j9 means run up to 9 parallel tasks to build the software.# As a rule of thumb, use -j(N 1) where N is the number of cores# of your system. That will maximize the CPU usage (one task per# CPU thread/core   a provision of one extra task when a process# is blocked by an I/O operation.

在你运作进行 make 指令以后,如果有其他的除开 “ok” 之外的信息内容,将代表着在创建流程中有不正确。在我们应用一个 -j 选择项去运作并行处理搭建时,在构建体系的很多导出操作过程中,查找错误报告并并非件非常容易的事。

在这样的情况下,只有是从头开始 make,而且不必应用 -j 选择项。那样不正确可能发生在导出数据的最终面:

sh$ make

最后,编译程序完毕后,你能运作这一指令去安装你的软件:

sh$ sudo make install

随后检测它:

sh$ /opt/node/bin/node --versionv8.1.1

B. 假如在源码安装的历程中发生不正确该怎么办?

我上边讲解的大多数就是你能在文本文档完备的項目的“搭建命令”网页页面上见到。可是,文中的总体目标是使你从源码逐渐去编译程序你的第一个软件,它很有可能要花一些的时间去科学研究一些常用的问题。因而,我将再度从头开始一遍整个过程,可是,此次是在一个全新的、降到最低安装的 Debian 9.0 和 CentOS 7.0 系统软件上。因而,你很有可能见到我碰到的不正确及其我如何去处理它。

从 Debian 9.0 中 “Stretch” 逐渐

itsfoss@debian:~$ git clone --depth 1  --branch v8.1.1  https://github.com/nodejs/node-bash: git: command not found

这个问题很容易去检测和处理。去安装这一 git 包就可以:

itsfoss@debian:~$ sudo apt-get install git
itsfoss@debian:~$ git clone --depth 1  --branch v8.1.1  https://github.com/nodejs/node && echo ok[...]ok
itsfoss@debian:~/node$ sudo mkdir /opt/node-v8.1.1itsfoss@debian:~/node$ sudo ln -sT node-v8.1.1 /opt/node

如今没有问题了。

itsfoss@debian:~/node$ ./configure --prefix=/opt/node-v8.1.1/WARNING: failed to autodetect C   compiler version (CXX=g  )WARNING: failed to autodetect C compiler version (CC=gcc)Node.js configure error: No acceptable C compiler found! Please make sure you have a C compiler installed on your system and/or consider adjusting the CC environment variable if you installed it in a non-standard prefix.

很显而易见,编译程序一个新项目,你需要一个c语言编译器。NodeJS 是应用 C 语言表达[13] 写的,大家必须一个 C c语言编译器[14]。在这儿我将安装 g ,它就是为这一目地写的 GNU C c语言编译器:

itsfoss@debian:~/node$ sudo apt-get install g  itsfoss@debian:~/node$ ./configure --prefix=/opt/node-v8.1.1/ && echo ok[...]ok
itsfoss@debian:~/node$ make -j9 && echo ok-bash: make: command not found

还差一个其他专用工具。一样的病症。一样的解决方法:

itsfoss@debian:~/node$ sudo apt-get install makeitsfoss@debian:~/node$ make -j9 && echo ok[...]ok
itsfoss@debian:~/node$ sudo make install[...]itsfoss@debian:~/node$ /opt/node/bin/node --versionv8.1.1

取得成功!

小心:我将一次又一次地安装各种各样专用工具去展现如何去确诊编译程序问题,及其展现如何去处理这种问题。可是,假如你检索有关这一题材的大量文本文档,或是读其他的实例教程,你将发觉,许多桌面操作系统有一个 “meta-packages”,它包含了安装一些或是所有的用以编译程序软件的专用工具。在根据 Debian 的系統上,你也许遇到过 build-essentials[15] 包,它便是这类作为。在根据 Red Hat 的桌面操作系统中,它将是 “Development Tools” 组。

在 CentOS 7.0 上

[itsfoss@centos ~]$ git clone --depth 1  --branch v8.1.1  https://github.com/nodejs/node-bash: git: command not found

指令并没有找到?可以用 yum 包管理工具去安装它:

[itsfoss@centos ~]$ sudo yum install git
[itsfoss@centos ~]$ git clone --depth 1  --branch v8.1.1  https://github.com/nodejs/node && echo ok[...]ok
[itsfoss@centos ~]$ sudo mkdir /opt/node-v8.1.1[itsfoss@centos ~]$ sudo ln -sT node-v8.1.1 /opt/node
[itsfoss@centos ~]$ cd node[itsfoss@centos node]$ ./configure --prefix=/opt/node-v8.1.1/WARNING: failed to autodetect C   compiler version (CXX=g  )WARNING: failed to autodetect C compiler version (CC=gcc)Node.js configure error: No acceptable C compiler found! Please make sure you have a C compiler installed on your system and/or consider adjusting the CC environment variable if you installed it in a non-standard prefix.

你了解的:NodeJS 是应用 C 语言表达写的,可是,我的系统缺乏适宜的编译器。Yum 可以帮到你。由于,我不是一个合格的 CentOS 客户,我事实上是在互联网技术上搜寻到包括 g 编译器的包的准确名称的。这一网页页面具体指导了我:https://superuser.com/questions/590808/yum-install-gcc-g-doesnt-work-anymore-in-centos-6-4 。

[itsfoss@centos node]$ sudo yum install gcc-c  [itsfoss@centos node]$ ./configure --prefix=/opt/node-v8.1.1/ && echo ok[...]ok
[itsfoss@centos node]$ make -j9 && echo ok[...]ok
[itsfoss@centos node]$ sudo make install && echo ok[...]ok
[itsfoss@centos node]$ /opt/node/bin/node --versionv8.1.1

再度取得成功!

C. 从源码中对要组装的手机软件做一些更改

从源码中组装一个软件,很有可能是由于你的派发库房中没有一个可以用的特殊版本号。或是因为你想要去 改动 那一个程序流程。也可能是修补一个 bug 或是提升一个特点。终究,开源项目这种都能够保证。因而,我将把握住这些机遇,使你亲自感受如何去编译程序你自己的手机软件。

在这儿,我将在 NodeJS 源码上做一个细微更改。随后,大家将见到咱们的更改将被列入到系统的编译程序版本号中:

用你最喜欢的 文本编辑[17](如,vim、nano、gedit、 … )打开文件 node/src/node.cc。随后,试着寻找如下所示的源代码精彩片段:

 if (debug_options.ParseOption(argv[0], arg)) { // Done, consumed by DebugOptions::ParseOption(). } else if (strcmp(arg, \"--version\") == 0 || strcmp(arg, \"-v\") == 0) { printf(\"%sn\", NODE_VERSION); exit(0); } else if (strcmp(arg, \"--help\") == 0 || strcmp(arg, \"-h\") == 0) { PrintHelp(); exit(0); }

它在 文档的 3830 行[18] 周边。随后,改动包括 printf 的行,将它换成如下所示具体内容:

 printf(\"%s (compiled by myself)n\", NODE_VERSION);

随后,回到到你的终端设备。在接着以前,为了更好地对强劲的 Git 适用有越多的掌握,你能去检查一下,你改动是文档是不是恰当:

diff --git a/src/node.cc b/src/node.ccindex bbce1022..a5618b57 100644--- a/src/node.cc    b/src/node.cc@@ -3828,7  3828,7 @@ static void ParseArgs(int* argc, if (debug_options.ParseOption(argv[0], arg)) { // Done, consumed by DebugOptions::ParseOption(). } else if (strcmp(arg, \"--version\") == 0 || strcmp(arg, \"-v\") == 0) {- printf(\"%sn\", NODE_VERSION);  printf(\"%s (compiled by myself)n\", NODE_VERSION); exit(0); } else if (strcmp(arg, \"--help\") == 0 || strcmp(arg, \"-h\") == 0) { PrintHelp();

在你前边更改的那行以前,你将见到一个 “-” (减号标示)。而在更改以后的行前边有一个 “ ” (减号标示)。

现在可以去再次编译程序并重装你的软文了:

make -j9 && sudo make install && echo ok[...]ok

这个时候,很有可能成功的唯一缘故便是你更改编码时的键入不正确。假如便是这样的事情,在文本编辑中再次开启 node/src/node.cc 文档并修补不正确。

一旦你完成了新改动版本号的 NodeJS 的编译器和组装,就可以去查验你的改动是不是包括到系统中:

itsfoss@debian:~/node$ /opt/node/bin/node --versionv8.1.1 (compiled by myself)

祝贺你了!你对开门源代码作出了你的第一个更改!

D. 让 shell 寻找大家订制搭建的手机软件

到现在为止,你很有可能注意到,我通常运行我新编译程序的 NodeJS 手机软件是根据特定到该二进制文件的相对路径。

/opt/node/bin/node

这也是可以正常的作业的。可是,那样太不便。事实上有这两种方法可以去处理这个问题。可是,去了解他们,你需要最先搞清楚,你的 shell 精准定位可执行程序是根据在系统变量[19] PATH 中选定的文件目录里边搜索的。

itsfoss@debian:~/node$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

在这个 Debian 系统软件上,假如你没特定一个准确的文件目录作为指令名称的一部分,shell 将最先在 /usr/local/bin 中搜索可执行文件;要是没有寻找,随后进到 /usr/bin 中搜索;要是没有寻找,随后进到 /bin搜索;要是没有寻找,随后进到 /usr/local/games搜索;要是没有寻找,随后进到 /usr/games 搜索;要是没有寻找,那麼,shell 将汇报一个不正确,“command not found”。

从而,我们可以了解有这两种办法去保证指令可以被 shell 浏览到:将它(该二进制程序流程)提升到已经配备好的 PATH 文件目录中,或是将包括可执行文件的文件目录加上到 PATH 中。

从 /usr/local/bin 中添加一个连接

仅仅从 /opt/node/bin 中 复制 NodeJS 二进制可执行程序到 /usr/local/bin 是一个问题的作法。由于,假如那么做,该可执行文件将无法定位到在 /opt/node/ 中的必须的其他部件。(手机软件以它自身的地方去精准定位它所必须的网络资源文档是普遍的作法)

因而,传统式的作法是去应用一个标记连接:

itsfoss@debian:~/node$ sudo ln -sT /opt/node/bin/node /usr/local/bin/nodeitsfoss@debian:~/node$ which -a node || echo not found/usr/local/bin/nodeitsfoss@debian:~/node$ node --versionv8.1.1 (compiled by myself)

这一个简洁而合理的解决方案,尤其是,假如一个程序包是由好多个大家都知道的可执行文件构成的,由于,你将为每一个客户启用的指令建立一个标记连接。例如,假如你了解 NodeJS,你了解运用的 npm 部件,也应当从 /usr/local/bin 做一个标记连接。我将这一交给你做训练。

改动 PATH

最先,假如你试着过前边的解决方法,请先清除前边建立的连接点标记连接,去从一个干净整洁的情况逐渐:

itsfoss@debian:~/node$ sudo rm /usr/local/bin/nodeitsfoss@debian:~/node$ which -a node || echo not foundnot found

如今,这儿有一个更改你的 PATH 的法术指令:

itsfoss@debian:~/node$ export PATH=\"/opt/node/bin:${PATH}\"itsfoss@debian:~/node$ echo $PATH/opt/node/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

简易说便是,我就用系统变量 PATH 以前的具体内容作为前缀了一个 /opt/node/bin 替换了其原来的具体内容。因而,你可以想象一下,shell 将先进到到 /opt/node/bin 目录中搜索可执行文件。大家还可以应用 which 指令去确定一下:

itsfoss@debian:~/node$ which -a node || echo not found/opt/node/bin/nodeitsfoss@debian:~/node$ node --versionv8.1.1 (compiled by myself)

由于 “标记连接” 解决方法是长期性的,只需建立到 /usr/local/bin 的标记连接就可以了,而对 PATH 的更改仅危害到目前的 shell。你可以自己做一些科学研究,怎样保证对 PATH 的永久性更改。让你一个提醒,可以将它写到你的 “profile” 中。如果你寻找这一解决方法,不要犹豫,根据接下来的发表评论共享资源给其他的阅读者!

E. 如何去卸载掉刚刚从源码中安裝的手机软件

由于自己订制编译的 NodeJS 手机软件所有在 /opt/node-v8.1.1 目录中,卸载掉它不用做很多的工作中,仅应用 rm 指令去删掉那一个目录就可以:

sudo rm -rf /opt/node-v8.1.1

留意:sudorm -rf 是 “十分凶险的伏特加”!一定要在按住空格键以前多查验几回你的指令。你肯定不会获得所有的确认信息,而且如果你删除了不正确的目录它是无法修复的 …

随后,如果你改动了你的 PATH,你可以去修复这种更改。它一点也不繁杂。

如果你从 /usr/local/bin 建立了一个标记连接,你应该去删掉他们:

itsfoss@debian:~/node$ sudo find /usr/local/bin  -type l  -ilname \"/opt/node/*\"  -print -delete/usr/local/bin/node

这些? 依赖炼狱在哪儿?

做为最后的探讨,如果你读过相关的编译软件定制的文本文档,你很有可能听见有关 依赖炼狱dependency hell[20] 的观点。那就是在你可以取得成功编译一个软件以前,对那类讨厌状况的一个别称,你需要最先编译一个必要条件所必须的库,它又很有可能规定其他的库,而这种库有可能与你的系統上已经安装使用的其他手机软件兼容问题。

桌面操作系统的程序包维护者的一部分工作中,便是具体去地处理这些依赖炼狱,保证你的系統上的各种各样手机软件都采用了兼容的库,而且按恰当的先后顺序去组装。

在这篇文章中,我特地挑选了 NodeJS 去组装,是由于它几乎并没有依赖。我讲 “几乎” 是由于,事实上,它 有 依赖。可是,这种源码的依赖已经预设到工程项目的源库房中(在 node/deps 子目录下),因而,在你动手能力编译以前,你不用手动式去下載和组装他们。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年6月5日 上午10:59
下一篇 2022年6月5日 上午10:59

相关推荐

  • 智能客服发展趋势是怎样的,客服的发展方向及前景分析

    随着移动互联网的快速发展,客户的联络需求呈多元化、指数级增长,企业需要提供多渠道的客服系统满足客户沟通联络需求,例如在线客服,涉及微信、Web、APP、QQ等即时客服。 客服系统是连接企业与客户的重要桥梁,极大地影响着企业的销售成果、品牌影响及市场地位。 长久以来,传统客服行业存在诸多痛点,客服人员流动性大、培训成本高、服务效果难以把控、大量重复性问题过度消耗人工客服。 现如今,如何提升售前转化,…

    2022年7月14日
    660
  • pdf格式的文件怎么打开,pdf格式文件快速打开方法

    怎么浏览PDF文件?PDF文件在日常的办公生活和学习生活中使用的频率越来越频繁,因为PDF具有非常多的优点,比如将普通的Word文件、Excel文件转换成PDF文件再打印,就不会出现格式变动和错乱的问题,加上PDF文件非常便于传输,因而现在使用这种文件格式的人越来越多。 那么在电脑里面要怎么打开PDF文件浏览呢?许多朋友其实不是很清楚各种浏览方法,没关系,今天就给大家讲讲可以通过哪些方式来打开和浏…

    2022年7月16日
    520
  • 驱动下载软件哪个好(免费好用的驱动软件)

    电脑系统安装完毕后,有个非常重要的后续工作要做,那就是给电脑安装硬件驱动。 每一个驱动都从官网下载,非常麻烦,这时我们就需要用到驱动更新软件了。 这里我推荐几款软件供大家选用。 1:驱动精灵 老牌的驱动更新软件,驱动库非常全面,金山旗下的软件,缺点是安装的时候一定要看清右下角小字提示,是打勾还是把勾去掉,一着不慎金山全家桶都完全安装到电脑上了。 2:驱动人生 这个软件前几年非常好用,纯净无广告,可…

    2022年5月10日
    1330
  • app推广营销方案怎么写,app推广文案范例

    App的设计开发仅仅是第一步,推广和运营显然是更重要的市场开拓者。没有成功的运营推广策略,App的发展就无从谈起,说白了就是:想办法让用户过来,并留下。 目前市场上还没有非常完美的App推广方法,除了常规中立的应用市场推广外,其余的推广渠道和推广方式都需要根据不同的官方资源来规划。我特意为大家整理了一份相对完整的App推广方案,希望能带来点帮助。 一、分析竞品,明确定位 不打无准备的仗,制定推广方…

    2022年6月4日
    570
  • 网络创业平台有哪些,大学生创业50个小案例

    在如今自媒体短视频火得不可开交的时代,许多传统行业基本都形成了一种被“包养”的常态,这也是目前不少企业和自媒体之间的关系,当自媒体形成一定品牌价值之后,就会被一些大的机构团体注资或者是收购。 今天主要给各位看客简单讲解和分享一下我所在运营当中的31个网络平台,客观分析各个平台的流量收益补贴及盈利模式,希望对充满自由职业者想法的你有一定帮助和借鉴。 视频网站 01、优酷视频 有流量收入补贴,广告分成…

    2022年6月4日
    690
  • pdf转dwg转换器软件是什么(免费pdf转word软件推荐)

    CAD从2018版本开始新增了一项新功能,可以用CAD自带的工具把PDF格式的文件自动转为DWG格式进行编辑,而且精度非常高,比一些专门的转换软件精度都高,所有今天给大家分享一下: 1、需要的工具CAD2018或者以上的版本,我装的是2020,打开软件 2、点击插入或者输入快捷键(PDFI),选择PDF插入,如下图 3、找到我们需要转换的PDF文件,格式必须是PDF,点击打开 4、这里我们可以选择…

    2022年5月11日
    990
  • 游戏创业需要什么条件,月入2万的游戏创业项目大全

    文|锌刻度记者邱力力 编辑|杨靖怡 “从雄心壮志的创业者,到回归企业的打工者,你有过失落么?”记者问老齐。 在这个8月初酷热无风的深夜,老齐已经和记者交流许久,他回了一个憨笑表情:“没有失落,那是不可能的。毕竟辛苦几年,最后完蛋了。” “不过等到认清彻底挂掉,没救的时候,其实心态就是,觉得解脱了吧。”老齐在“破涕为笑”表情中说:“那时正好有个朋友也‘挂掉’了,我跑去跟他聊,说大不了就回公司,反正这…

    2022年5月19日
    760
  • 手机可以以旧换新么,手机以旧换新哪个平台好

    闲置的手机怎么处理,换不锈钢盆还是当作二手手机出售?各种回收平台,以旧换新到底靠不靠谱,今天小编对几大回收旧手机平台进行测试,看是否值得回收或者以旧换新。头条号禁止转载 首先为保证测试结果公平公正,都选取同一天的回收价格进行比较,测试机型为华为荣耀7 移动4G版。成色为外观有轻微磕碰,屏幕完好。测试平台有爱回收,魅族mCycle,华为以旧换新,乐视以旧换新。由于小米不回收华为荣耀系列机型,以及京东…

    2022年6月6日
    690
  • 互联网加教育的优势,互联网教育市场前景分析

    我结合自己的从业经验聊一下互联网教育这个行业。 在线教育前景广阔 教育在创业的各个行业里算是一个足够大的跑道,根据估算差不多有万亿级的市场,整个教育的增速以前是10%,现在略快于GDP,而在线教育在行业里占的比重非常低,所以未来的增长速度会高于整个行业的。 目前在线教育行业正在成为新的创业热点,据IT桔子,2015年截止到8月共发生了119起在线教育投资事件,17起并购事件。在A股上市公司方面,教…

    2022年10月7日
    440
  • 青年人创业成功的例子,年轻人创业最喜欢的五个创业项目

    1、心理咨询 在我们这个以竞争与压力为标志的社会中,谁能说自己没有过一时的甚至是长久的迷惘与困惑,这种情况得不到改善的严重后果就是我国每年自杀而亡的人数竟有25-28万之巨。据中国卫生部公布的资料,我国各种心理和精神疾病患者已高达1600万,占总人口的1.23%,而青少年中有各种学习、情绪和行为障碍等心理健康问题的人已经达到了3000万。这种与对心理咨询师巨大需求相对应的是我国严重紧缺的心理咨询专…

    2022年5月31日
    710

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信