• 关于

    GCC编译程序如何安装

    的搜索结果

回答

当您无法通过 阿里云迁云工具 迁移内核版本较低,自带系统引导程序 GRUB 版本为 0.97 及其以下的 Linux 服务器,例如,CentOS 5 和 Debian 7。而且日志文件提示 Do Grub Failed 时,可能是因为没有安装 1.9 以上版本的系统引导程序 GRUB(GRand Unified Bootloader)。本文档介绍了如何为您的源服务器安装系统引导程序 GRUB 1.99 版本。 安装 GRUB 1.99 版本 登录源服务器。 运行以下命令查看原 grub、grub-install 以及 grub-mkconfig 的路径: which grub which grub-install which grub-mkconfig使用 mv 命令为 grub、grub-install 以及 grub-mkconfig 改名以备份文件。您可以在使用阿里云迁云工具迁移服务器后,恢复原名以使用原配置。 运行 yum install -y bison gcc make 安装 GRUB 依赖的 bison、gcc 以及 make 工具。 运行以下命令安装 flex。 test -d /root/tools || mkdir -p /root/tools cd /root/tools wget https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz tar xzf flex-2.6.4.tar.gz cd flex-2.6.4 mkdir -p build cd build ../configure make && make install运行以下命令安装 GRUB 1.99 依赖。 test -d /root/tools || mkdir -p /root/tools cd /root/tools wget https://alpha.gnu.org/gnu/grub/grub-1.99~rc1.tar.gz tar xzf grub-1.99~rc1.tar.gz cd grub-1.99~rc1 mkdir -p build cd build ../configure make && make install注意:若编译过程中出现了 -Werror 报错,您可以定位到编译对象的编译文件 makefile 中,去掉 -Werror 选项重新编译。后续操作 安装系统引导程序 GRUB 1.99 版本后,您可以继续使用 阿里云迁云工具 迁移服务器至阿里云。

大财主 2019-12-02 00:32:21 0 浏览量 回答数 0

问题

GCC PGO 适应性优化编译 PHP7.1

妙正灰 2019-12-01 21:29:40 4394 浏览量 回答数 2

回答

一.动态库的基本概念 动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址是相对地址,不是绝对地址,其真实地址在调用动态库的程序加载时形成。 动态链接库的名称有别名(soname), 真名(realname)和链接名(linker name)。别名由一个前缀lib,然后是库的名字,再加上一个后缀“.so”构成。真名是动态链接库真实名称,一般总是在别名的基础加上一个小版本号,发布版本等构成。除此之外,还有一个链接名,即程序链接时使用的库的名字。 3.在动态链接库安装的时候,总是复制文件到某个目录下,然后用一个软连接生成别名,在库文件进行更新的时候,仅仅更新软链接即可。 二.生成和使用动态库1.看一个实例来了解如何自己生成静态库和使用静态库 创建程序文件 1>在test文件夹下有三个文件: main.c ,add.c,sub.c,tiger.h 2> main.c文件中的内容: #include<stdio.h> #include”tiger.h” int main(void) { printf(“sum =%d\n”,add(5,3)); printf(“sub= %d\n”,sub(5,3)); return 0; } 3>.tiger.h文件中的内容: #ifndef __TIGER__ #define __TIGER__ int add(int a,int b); int sub(int a,int b); #endif 4>.add.c文件中的内容 ? int add(int a, int b) { return a +b; } 5>.sub.c文件中的内容 int sub(int a, int b) { return a - b; } 动态库的生成 1>首先生成目标文件,但是此时要加编译器选项-fpic和链接器选项-shared, gcc -fpic -c add.c gcc -fpic -c sub.c 生成中间文件add.o和sub.o 2>其次生成动态库 gcc -shared –o libtiger.so add.o sub.o 生成动态库libtiger.so,libtiger.so就是我们生成的目标动态库。我们以后使用动态库和main.c程序生成可执行程序 说明: 以上两部也可以合成一步搞定: gcc -fpic -shared add.c sub.c -o libtiger.so 2.使用动态链接库 在编译程序时,使用动态链接库和静态库是一致的,使用”-l库名”的方式,在生成可执行文件的时候会链接库文件。 1>使用命令: gcc -o main main.c -L ./ -ltiger 2>-L指定动态链接库的路劲,-ldtiger链接库函数tiger。-ltiger是动态库的调用规则。Linux系统下的动态库命名方式是lib*.so,而在链接时表示位-l*,*是自己命名的库名。 3>但是程序会提示如下错误 error while loading shared libraries: libtiger.so: cannot open shared object file: No such file or direct 这是因为程序运行时没有找到动态链接库造成的。程序编译时链接动态库和运行时使用动态链接库的概念是不同的,在运行时,程序链接的动态链接库需要在系统目录下才行。 4>使用以下方法可以解决此问题 在linux下最方便的解决方案是拷贝libtiger.so到绝对目录 /lib 下(但是,要是超级用户才可以,因此要使用sudo哦,亲)。就可以生成可执行程序了 b.第二种方法是:将动态链接库的目录放到程序搜索路径中,可以将库的路径加到环境变量LD_LIBRARY_PATH中实现: export LD_LIBRARY_PATH=pwd:$LD_LIBRARY_PATH 执行此命令后也可以生成可执行程序

a123456678 2019-12-02 02:49:15 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

【精品问答】python百大常见问题与答案详解

祖安文状元 2020-02-24 17:56:41 363 浏览量 回答数 1

问题

【教程免费下载】深入理解计算机系统(英文版第3版)

玄学酱 2019-12-01 22:08:27 3332 浏览量 回答数 1

回答

误删文件后恢复数据 本文档主要以CentOS7操作系统为例,介绍如何使用开源工具Extundelete快速恢复被误删除掉的数据。 前提条件 使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。 背景信息 在日常使用中有时难免会出现数据被误删除的情况,该如何快速、有效地恢复数据呢?在阿里云上恢复数据有多种方式,例如: 通过ECS管理控制台回滚已创建的快照、恢复自定义镜像等方式。 购买多台ECS,实现业务的负载均衡和高可用。详情请参见负载均衡。 使用对象存储OSS,存储静态网页和海量图片、视频等重要数据。详情请参见对象存储 OSS(Object Storage Service)。 在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs、R-Linux、ext3grep、extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复原理基本一样,只是extundelete功能更加强大。使用阿里云的云服务器时,如果您不小心误删除数据,并且Linux系统也没有与Windows系统下回收站类似的功能,您可以方便快速安装extundelete工具。 extundelete工具能够利用inode信息结合日志去查询该inode所在的block位置,以此查找和恢复所需的数据。该工具最给力的一点就是支持ext3/ext4双格式分区恢复,基于整个磁盘的恢复功能较为强大。 在数据被误删除后,首先要做的是卸载被删除数据所在的磁盘或磁盘分区。因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,误删除的数据就无法恢复。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,提高恢复数据成功的几率。 说明 在实际线上恢复过程中,切勿将extundelete安装到您误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖,切记操作前做好快照备份。 本教程适用的对象是: 磁盘中文件误删除的用户,且未对磁盘进行过写入等操作 网站访问量小、少量ECS实例的用户 需安装的软件及版本:e2fsprogs-devel e2fsprogs gcc-c++ make(编译器等)Extundelete-0.2.4。 说明 extundelete需要libext2fs版本1.39或更高版本来运行,但是对于ext4支持,请确保您有e2fsprogs版本1.41或更新版本(可以通过运行命令dumpe2fs并记录其输出的版本)。 以上版本是写文档时的软件版本。您下载的版本可能与此不同。 操作步骤 使用开源工具Extundelete快速恢复被误删的数据的操作步骤如下: 步骤一:部署extundelete工具 步骤二:使用extundelete模拟数据误删除后恢复的过程 步骤一:部署extundelete工具 运行以下命令,部署extundelete工具: wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2 yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make #安装相关依赖和库 tar -xvjf extundelete-0.2.4.tar.bz2 cd extundelete-0.2.4 #进入程序目录 ./configure #如下图表示安装成功 部署extundelete工具 make && make install 这个时候会出现src目录,该目录下有个extundelete可执行文件以及相应路径,其实默认文件安装路径为usr/local/bin,下面模拟删除后恢复数据的操作就在usr/local/bin目录下进行。 步骤二:使用extundelete模拟数据误删除后恢复的过程 完成以下操作,使用extundelete模拟数据误删除后恢复的过程: 检查ECS现有的磁盘和可用分区,并对/dev/vdb进行分区和格式化。具体操作,请参见格式化和挂载数据盘。 fdisk -l 检查磁盘和分区情况 将分区后的磁盘挂载到/zhuyun目录下,然后在/zhuyun下新建测试文件hello,并写入内容test。 mkdir /zhuyun #新建zhuyun目录 mount /dev/vdb1 /zhuyun #将磁盘挂载到zhuyun目录下 echo test > hello #写入测试文件 记录文件hello的md5值。md5sum命令用于生成和校验删除前和恢复后两个文件的md5值。 md5sum hello 记录文档的md5值 模拟删除hello文件。 rm -rf hello cd ~ fuser -k /zhuyun #结束使用某分区的进程树(确认没有资源占用的话,可以跳过此步) 卸载数据盘。 umount /dev/vdb1 #任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用 使用extundelete工具恢复文件。 extundelete --inode 2 /dev/vdb1 #为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode 恢复文件 /usr/local/bin/extundelete --restore-inode 12 /dev/vdb1 #恢复删除的文件 这个时候会在执行命令的同级目录下出现RECOVERED_FILES目录。 生成恢复后的文件 通过md5sum命令查看恢复后RECOVERED_FILES文件的md5值。 md5sum RECOVERED_FILES 查看删除前的hello和恢复后的RECOVERED_FILES两个文件的md5值是否一致,如果一致,则数据恢复成功。

1934890530796658 2020-03-25 18:35:05 0 浏览量 回答数 0

回答

在阿里云上恢复数据有多种方式,例如: 通过阿里云控制台回滚备份好的快照,自定义镜像恢复等方式。 购买多台ECS,实现业务的负载均衡,高可用。 利用对象存储 OSS(Object Storage Service),存储静态网页和海量图片、视频等重要数据。 本文档主要以CentOS7操作系统为例,介绍如何使用开源工具Extundelete快速恢复被误删除掉的数据。 在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs、R-Linux、ext3grep、extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复原理基本一样,只是extundelete功能更加强大。 Extundelete是基于linux的开源数据恢复软件。在使用阿里云的云服务器时,如果您不小心误删除数据,并且Linux系统也没有与Windows系统下回收站类似的功能,您可以方便快速安装此工具。 Extundelete能够利用inode信息结合日志去查询该inode所在的block位置,以次来查找和恢复所需的数据,该工具最给力的一点就是支持ext3/ext4双格式分区恢复,基于整个磁盘的恢复功能较为强大。 注意事项 在数据被误删除后,第一时间要做的是卸载被删除数据所在的磁盘或磁盘分区。因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回力无天。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,以提高恢复数据成功的几率。 注:在实际线上恢复过程中,切勿将extundelete安装到您误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖,切记操作前做好快照备份。 适用对象 磁盘中文件误删除的用户,且未对磁盘进行过写入等操作 网站访问量小、少量 ECS 实例的用户 使用方法 需安装的软件及版本:e2fsprogs-devel e2fsprogs gcc-c++ make(编译器等)Extundelete-0.2.4 注:extundelete需要libext2fs版本1.39或更高版本来运行,但是对于ext4支持,请确保您有e2fsprogs版本1.41或更新版本(可以通过运行命令“dumpe2fs”并记录其输出的版本) 说明:以上版本是写文档时的软件版本。您下载的版本可能与此不同。 部署extundelete工具 wget  http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2 yum -y install  bzip2  e2fsprogs-devel  e2fsprogs  gcc-c++  make    #安装相关依赖和库 tar -xvjf extundelete-0.2.4.tar.bz2 cd extundelete-0.2.4                                #进入程序目录 ./configure                                         #如下图表示安装成功 make && make install 这个时候会出现src目录,下面有个extundelete可执行文件以及相应路径,如下图,其实默认文件安装在usr/local/bin下面,下面演示就在usr/local/bin目录下。 使用extundelete,模拟数据误删除然后恢复的过程 1.检查ECS现有的磁盘和可用分区,并对/dev/vdb进行分区,格式化,此处不在介绍磁盘分区格式化方式,如果不会的话可以点击此文档查看操作方式“格式化和挂载数据盘”。 fdisk -l 2.将分区后的磁盘挂载到/zhuyun目录下,然后在/zhuyun下面新建测试文件hello,写入test。 mkdir /zhuyun                                #新建zhuyun目录 mount /dev/vdb1 /zhuyun                      #将磁盘挂载到zhuyun目录下 echo test > hello                            #写入测试文件 3.记录文件MD5值,md5sum命令用于生成和校验删除前和恢复后俩个文件的md5值。 md5sum hello 4.模拟删除hello文件。 rm -rf hello cd ~ fuser -k /zhuyun                     #结束使用某分区的进程树(确认没有资源占用的话,可以跳过此步) 5.卸载数据盘。 umount /dev/vdb1                     #任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用 6.使用Extundelete工具恢复文件。 extundelete --inode 2 /dev/vdb1 #为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode /usr/local/bin/extundelete --restore-inode 12 /dev/vdb1 #恢复删除的文件 这个时候会在执行命令的同级目录下出现RECOVERED_FILES目录,查看是否恢复。 通过md5值查看,前后俩个文件,一样说明恢复成功。 注: --restore-inode 12 # --restore-inode 按指定的I节点恢复 --extundelete --restore-all # --restore-all 全部恢复 望采纳,谢谢🙏

元芳啊 2019-12-02 00:09:28 0 浏览量 回答数 0

问题

程序员报错行为大赏-配置报错

问问小秘 2020-06-11 13:18:25 6 浏览量 回答数 1

问题

数据库进程间通信解决方案 数据库进程间通信解决方案 :报错

kun坤 2020-06-09 09:27:43 0 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板