源代码怎么使用,源代码生成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 压缩文件。对于我来说,为解读的目地,我在cmd中免费下载并缓解压力这一 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年7月17日 下午2:14
下一篇 2022年7月17日 下午2:19

相关推荐

  • 学生手机赚钱怎么玩,适合学生赚钱的软件推荐

    副业刚需,似乎越来越流行了,其实国内有副业的年轻人已经超过八千万。 生活不易,赚钱更不易。希望能给大家带来一定的帮助~ 01体力型 如果你想靠自己的体力来获取酬金,你就是属于体力型,比如跑腿、送外卖、搬砖等等。劳动最光荣,无谓体力还是智力,凭本事挣钱,没什么不好意思的。只要愿意干,就会有收入。 (1)人人跑腿 (2)爱跑腿 (3)美团跑腿 (4)达达 (5)UU跑腿 (6)蜂鸟众包 (7)点我达 …

    2022年7月22日
    630
  • 如何将微信聊天记录导入电脑,永久保存微信聊天记录方法

    微信聊天记录怎么备份到电脑?我们日常使用微信聊天会产生很多数据,包括发送的信息、照片、小视频等,这些数据中很多还是很重要的,譬如很多人喜欢用手机微信拍下孩子成长的历程。这些重要又珍贵的数据,数据蛙建议大家可以备份在电脑上,以免手机丢失或者手机损坏等原因,或者因为不小心删除了导致无法找回。 备份的方法也很简单,下面跟着数据蛙的介绍来看看如何实现将微信聊天记录备份云端吧。 第一步:下载微信PC版并安装…

    2022年8月4日
    750
  • 眼霜怎么用效果最佳,教你涂眼霜的正确步骤

    作为一名精致的小猪猪,每天累死也会坚持卸妆洗脸护肤,特别是眼霜这一步! 人老先老眼嘛!总不能顶着个死鱼眼去电男神! 眼部的皮肤又薄又敏感,非常容易衰老、长皱纹,所以眼部保养很重要。 只是,眼霜辣么贵,涂错很浪费!你知道眼霜的正确用法吗? 网络搜了一搜,天啊!“正确的涂眼霜教程”一大堆,众说纷纭,女星杨超越也表示她涂眼霜只涂一圈。 听说涂错眼霜不只没效果,还会加深眼纹! 以下6种最靠谱的眼霜涂抹方法…

    2022年9月19日
    580
  • 免费域名哪里申请,3个方法快速完成域名注册

    免费域名注册申请怎么样?有免费域名注册申请吗?免费域名注册服务使得人们在建站的过程当中,都有着更为方便的功能与体验,使得大家都可以更好地使用各种网络域名,而对于这个方面,部分服务商还有着不少的精心服务,都是特地为人们配套提醒的,都可以供大家进行有效的选择。如果满足以下条件,才建议考虑。下面聚名网小编就跟大家说说免费域名注册申请有何方法。 免费域名注册申请怎么样?有免费域名注册申请吗?(推荐阅读:注…

    2022年9月3日
    490
  • 无线蓝牙耳机排名前十推荐,看看你最喜欢哪一款

    随着蓝牙技术的不断成熟,苹果就推出AirPods,从此真无线耳机行业就变的火爆起来。而这一波也让不少厂家看到了市场,当下除了原来做声响设备的厂家做无线耳机以外,也有手机厂家做无线耳机的,下面给大家推荐几款比较不错的蓝牙耳机。 推荐一、NANK南卡N2 售价:369 蓝牙版本:5.0 续航时间:5+120小时 防水等级:IPX6 降噪:CVC8.0通话降噪 充电接口:type-c 推荐理由:如果选择…

    2022年8月18日
    510
  • 小米路由器千兆版哪个好(推荐一款网速飞快且稳的路由器)

    最近几年,科技在生活中扮演的角色越来越重要,尤其是在小米的推动之下,智能家居产品更是变得相当普及。智能家居最重要的功能就是联动,而联动又是依靠网络实现。如今我家里面的智能家居产品越来越多,要想让每款产品都时刻保持在线,其实家里还得要有一个优秀的路由器。以前家里面使用路由器的设备基本上只有电脑和手机,所以路由器配置不高也不会出现连不上的情况,但是当连接设备变多之后,就会出现被“挤下线”的情况了。 要…

    2022年9月19日
    1760
  • 线下宣传方式有哪些,八种线下推广新颖方式

    线下推广是一种针对性强大的推广方式,具有针对性和传播性可以说是小成本且有效率的打广告方式。且都有哪种方式呢? 首先对于我们来讲,最准确的目标消费群体,是线上推广和线下活动都看重的群体,包括今天被中国电商重视的数据库营销,也是线下活动的重要数据。其次你的产品群体是否细分,是男性还是女性,是20-30,还是30-40岁,他或她的消费习惯、消费频率,工作职业。审美意识等等个性化的设计都十分重要。如果我们…

    2022年7月24日
    1740
  • 创业时代演员表介绍,剧里每个人的结局是怎样

    《创业时代》是一部根据作家付瑶的同名小说改编的互联网创业题材电视剧。说起这部剧,不得不让人想到剧中饰演男主角郭鑫年的黄轩。剧中黄轩饰演的郭鑫年是一名出身普通却身怀梦想在大城市努力打拼的创业青年,虽然这种类型的角色黄轩之前很少尝试,但是角色本身的背景恰恰反应了当代年轻人在社会上的缩影,而且配上黄轩的演技相比能引起不少人的共鸣和思考。 近年来,黄轩的演技在不断的提升成长,不管是《亲爱的翻译官》冷静干练…

    2022年6月25日
    810
  • u盘主控检测型号(u盘主控坏了修复方法)

    今天以金士顿8GU盘量产Windows7系统安装盘为例 就是下面这个U盘 插入电脑显示U盘H容量7.45GB 首先用芯片精灵检测主控型号和闪存型号 还可以用金士顿专用检测工具来检测一下 这个显示的比较详细一些,显示量产工具的版本是MPALLv3.20.00,主控版本2251-50/30,固件版本03.04.10,模式3, 下面找到量产工具 打开MPALL_F1_7F00_DL07_v320_00如…

    2022年5月7日
    1140
  • iphone8上市价格是多少,历年苹果上市时间盘点

    苹果已经确定将于9月12日(北京时间13日凌晨1点)举办新品发布会,发布今年的5款新品,尤其是十周年特别版的iphone8,一改三年老样子,采取了异形全面屏的设计,备受期待,可谓是未发先火。目前离发布日期已经不足5天,关于iphone8的各种消息也被坐实。 外观方面iphone8真机也被外媒爆出,“齐刘海”的异形全面屏,除了上额头听筒位置,基本上全是屏幕,屏占比高达97%,视觉效果相当惊艳;屏幕大…

    2022年6月4日
    1050

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信