自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (125)
  • 收藏
  • 关注

原创 赶紧把360云盘卸了吧!!!我受够了!!!

装了360云盘有一段时间了,37TB的空间,诱人啊!!还是免费的,还有各种群资源,用的那是一个爽啊,但最近发现一个怪事,本人喜欢美剧,360群共享的里有很多美剧,我大概下载了有20G左右,突然发现我的C盘空间不足了!!!!我的SSD哦,没空间了,搜索了一下C盘大于200M的文件,好家伙,同步下载下来的美剧在C盘也有!!(我没有同步到C盘,我确信同步到了E盘,而且E盘是有我同步下来的美剧的),将这些

2013-10-11 22:14:57 11655 2

原创 关于android读写sdcard的权限问题

最近做公司的一个项目,usb host读写外部设备,需要拷贝文件到sdcard上去,代码写好了,死活读写失败,折腾了半天,才发现时读写权限的问题.解决办法:   在“AndroidManifest.xml”文件中添加sdcard读写权限:          这样就可以在sdcard中创建文件了.

2013-01-15 17:57:28 2917

转载 Makefile学习之wildcard

1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的Makefiles

2012-09-28 23:03:34 650

转载 Linux下的lds链接脚本基础

1. 概论  每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制。 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局。 但你也可以用连接命令做一些其他事情。  连接器有个默认的内置连接脚本, 可用ld –verbose查看。 连接选项-r和-N可以影响默认的连接脚本(如何影响?)

2012-08-21 16:44:41 802

转载 Makefile学习之隐含规则(二)

三、隐含规则使用的变量在隐含规则中的命令中,基本上都是使用了一些预先设置的变量。你可以在你的makefile中改变这些变量的值,或是在make的命令行中传入这些值,或是在你的环境变量中设置这些值,无论怎么样,只要设置了这些特定的变量,那么其就会对隐含规则起作用。当然,你也可以利用make的“-R”或“--no– builtin-variables”参数来取消你所定义的变量对隐含规则

2012-08-15 19:26:01 1063

转载 Makefile学习之隐含规则(一)

休息了两天...继续加油.....在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o] 文件,Windows下是[.obj]文件)。本章讲述的就是一些在Makefile中的“隐含的”,早先约定了的,不需要我们再写出来的规则。“隐含规则”也就是一种惯例,make会按照这种“惯例”心照

2012-08-13 18:28:40 1484 1

转载 Makefile学习之make 的运行

——————一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让 make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make命令的。一、make的退出码make命令执行后有三个退出码:0 ——

2012-08-10 18:28:21 19662

转载 Makefile学习之使用函数

在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( )或是${ }这里,就是函数名,make支持的函数不多。是函数的参数,参数

2012-08-08 15:21:50 730

转载 linux 链接脚本的编写

1. 概论 -------------------------------------------------------------------------------- 每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局

2012-08-08 10:39:22 947

转载 Makefile学习之使用条件判断

使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。一、示例下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。libs_for_gcc = -lgnunormal_libs =foo: $(objects)ifeq ($(CC),gcc)    $(C

2012-08-06 12:32:02 678

转载 Makefile学习之使用变量(二)

四、追加变量值我们可以使用“+=”操作符给变量追加值,如:objects = main.o foo.o bar.o utils.oobjects += another.o于是,我们的$(objects)值变成:“main.o foo.o bar.o utils.o another.o”(another.o被追加进去了)使用“+=”操作符,可以模拟为下面的这种例子

2012-08-06 12:16:47 3770

转载 Makefile学习之使用变量(一)

在 Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标”,“命令”或是 Makefile的其它部分中。变量的命名字可以包含字符、数字,下划线(可以是数字开头),但不应

2012-08-04 16:40:02 846

转载 WINCE下内核模式和用户模式的区别

为了使读者能够详细了解WINCE的地址映射原理还有两种模式,在这里我分几个部分说明: 1、 WINCE内核nk.exe的任务是管理操作系统核心功能。按照OEMAddressTable的映射要求,所有物理地址都映射到0x80000000以上,所以对于内核程序nk.exe和内核模式下的线程来说,只要访问0x80000000以上的有效虚拟地址经MMU就能够访问物理地址,无需再映射是内核模式的一个特点

2012-08-03 23:46:56 679

转载 wince U盘驱动的增加

将下面两个组件加上即可: Core OS Services-->USB Host Support-->USB Storage Class Driver Core OS Services-->File Systems and Data Store-->Storage Magager-->FAT File System 反正在我的原有的bsp的基础上增加了这两个组件,U盘就可以识别了。

2012-08-03 23:45:58 1334

转载 C# 延时函数 非Sleep

在很多时候,我们的程序,在执行下一步操作之前,需要等待上一步的执行完成,这种延时等待的方式在异步操作,或者是利用消息循环机制通信的程序中,最为体现的明显。举个API的例子:我们自己的程序是A,需要利用API结合Windows 消息机制,控制外部程序B;A向B发送一个消息,B去执行,此时A需要等待B执行完后,根据B的执行结果,再次向B发送下一个消息上面的例子,是个很典型的

2012-08-03 23:44:35 20607 3

转载 Makefile学习之书写命令

每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin/sh”——UNIX的标准S

2012-08-02 14:14:41 614

转载 Makefile学习之书写规则

规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在 Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让 make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为最终

2012-08-01 21:45:07 419

转载 Makefile学习之Makefile 总述

一、Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是

2012-08-01 21:43:06 433

转载 Makefile学习之清空目标文件的规则

每个Makefile中都应该写一个清空目标文件(.o和执行文件)的规则,这不仅便于重编译,也很利于保持文件的清洁。这是一个“修养”(呵呵,还记得我的《编程修养》吗)。一般的风格都是:clean:rm edit $(objects)更为稳健的做法是:.PHONY : cleanclean :-rm edit $(objects)前面说过,.PHONY意

2012-08-01 17:51:58 684

转载 Makefile学习之另类风格的makefile

即然我们的make可以自动推导命令,那么我看到那堆[.o]和[.h]的依赖就有点不爽,那么多的重复的[.h],能不能把其收拢起来,好吧,没有问题,这个对于make来说很容易,谁叫它提供了自动推导命令和文件的功能呢?来看看最新风格的makefile吧。objects = main.o kbd.o command.o display.o insert.o search.o files.o

2012-08-01 17:51:12 549

转载 Makefile学习之让make自动推导

GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果make找到一个whatever.o,那么whatever.c,就会是whatever.o的依赖文件。并且 cc -c whatev

2012-08-01 17:49:50 1683

转载 Makefile学习之makefile中使用变量

在上面的例子中,先让我们看看edit的规则:edit : main.o kbd.o command.o display.o \insert.o search.o files.o utils.occ -o edit main.o kbd.o command.o display.o \insert.o search.o files.o utils.o我们可以看到[.o]文件

2012-08-01 17:47:00 1139

转载 Makefile学习之make是如何工作的

在默认的方式下,也就是我们只输入make命令。那么,1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,

2012-08-01 17:45:56 791

转载 Makefile学习之一个示例

正如前面所说的,如果一个工程有3个头文件,和8个C文件,我们为了完成前面所述的那三个规则,我们的Makefile应该是下面的这个样子的。edit : main.o kbd.o command.o display.o insert.o search.o files.o utils.occ -o edit main.o kbd.o command.o display.o insert.

2012-08-01 17:45:11 455

转载 Makefile学习之Makefile的规则

在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则。target ... : prerequisites ...command......target:也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。prerequisites:就

2012-08-01 17:44:02 371

转载 Makefile学习之概述

什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile

2012-08-01 17:42:50 433

原创 C++中将科学计数转换为其他类型

#include #include #include using namespace std;double sciToDub(const string & str){       stringstream ss(str);       double d = 0;       ss >> d;       if (ss.fail())       {

2012-03-09 23:40:11 2181

转载 C#解析visa32.dll文件

using System;using System.Runtime.InteropServices;using System.Text;internal sealed class visa32{    // --------------------------------------------------------------------------------

2012-03-04 15:37:49 10155

转载 C++ 整型和字符串相互转换(转载)

itoa  功 能:把一整数转换为字符串  用 法:char *itoa(int value, char *string, int radix);  详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.  参数:  value: 待转化的整数。  radix: 是基数的意思,即先将value转化为

2012-03-04 15:36:28 38971 1

ARM位置无关代码设计规范

ARM位置无关代码设计规范,讲述了arm代码编写时对地址无关的描述.

2013-01-19

arm-linux-gcc-4.5.1编译工具

arm-linux-gcc-4.5.1编译工具

2013-01-19

mini2440之U-boot移植详细手册-20100419

mini2440之U-boot移植详细手册-20100419

2012-06-03

Mini2440 Linux移植开发实战指南.pdf

Mini2440 Linux移植开发实战指南.pdf

2012-06-03

学用VisualC++6.0开发Active.X控件.(美)Nathan.Wallance.文字版

学用VisualC++6.0开发Active.X控件.(美)Nathan.Wallance.文字版

2012-06-03

myeclipse 8.6 / 9.0 / 10.0 破解包及使用说明

myeclipse 8.6 / 9.0 / 10.0 破解包及使用说明

2012-03-18

LINUX设备驱动开发详解(第2版)(宋宝华 编)

LINUX设备驱动开发详解(第2版)(宋宝华 编)

2012-03-10

Linux窗口程序设计—Qt4精彩实例分析

Linux窗口程序设计—Qt4精彩实例分析

2012-03-04

arm开发详解

arm开发详解,包括: 第1章 arm微处理器概述.doc 第2章 ARM微处理器的编程模型.doc 第3章 arm微处理器的指令系统.doc 第4章 arm程序设计基础.doc 第5章 应用系统设计与调试.doc

2012-03-04

ucos-iii中文资料

找的不错的资料,其中有: 1、uCOS-III中文翻译 2、uCOS-III移植到stm32 3、uCGUI在stm32内核上的移植

2012-03-04

MDK应用文章

MDK应用文章,包括: 1、利用Realview MDK生成.bin格式的文件; 2、在MDK中添加自己的FLASH编程算法; 3、Realview MDK中调试脚本的详细解析 4、Realview MDK中链接脚本的详细解析 5、Realview MDK中编译器对中断处理的过程详解 6、Realveiw MDK中图形化界面配置详解 7、2410的分散加载文件 8、基于2410的MDK例程移植 9、Realview MDK常见问题及解决方法 10、从ADS1.2移植到MDK文档及示例

2012-03-04

用C语言编写高效的ARM程序

用C语言编写高效的ARM程序.pdf用C语言编写高效的ARM程序.pdf用C语言编写高效的ARM程序.pdf用C语言编写高效的ARM程序.pdf用C语言编写高效的ARM程序.pdf用C语言编写高效的ARM程序.pdf用C语言编写高效的ARM程序.pdf

2011-11-11

uCOS_ARM移植要点详解—北航版

uCOS_ARM移植要点详解—北航版.pdfuCOS_ARM移植要点详解—北航版.pdfuCOS_ARM移植要点详解—北航版.pdfuCOS_ARM移植要点详解—北航版.pdfuCOS_ARM移植要点详解—北航版.pdfuCOS_ARM移植要点详解—北航版.pdf

2011-11-11

液晶驱动详解(想写驱动的朋友请进!)

液晶驱动详解(想写驱动的朋友请进!).zip液晶驱动详解(想写驱动的朋友请进!).zip液晶驱动详解(想写驱动的朋友请进!).zip液晶驱动详解(想写驱动的朋友请进!).zip液晶驱动详解(想写驱动的朋友请进!).zip液晶驱动详解(想写驱动的朋友请进!).zip液晶驱动详解(想写驱动的朋友请进!).zip

2011-11-11

ARM启动代码设计

ARM启动代码设计.pdfARM启动代码设计.pdfARM启动代码设计.pdfARM启动代码设计.pdfARM启动代码设计.pdfARM启动代码设计.pdfARM启动代码设计.pdfARM启动代码设计.pdfARM启动代码设计.pdf

2011-11-11

STM32_uClinux程序

STM32_uClinux程序.zip.ZIPSTM32_uClinux程序.zip.ZIPSTM32_uClinux程序.zip.ZIPSTM32_uClinux程序.zip.ZIPSTM32_uClinux程序.zip.ZIPSTM32_uClinux程序.zip.ZIPSTM32_uClinux程序.zip.ZIP

2011-11-11

VC++编写USB接口通信程序

VC++编写USB接口通信程序.rarVC++编写USB接口通信程序.rarVC++编写USB接口通信程序.rarVC++编写USB接口通信程序.rarVC++编写USB接口通信程序.rarVC++编写USB接口通信程序.rarVC++编写USB接口通信程序.rar

2011-11-11

摄像头编程,采用纯API写的视频捕捉程序

摄像头编程,采用纯API写的视频捕捉程序。.zip摄像头编程,采用纯API写的视频捕捉程序。.zip摄像头编程,采用纯API写的视频捕捉程序。.zip摄像头编程,采用纯API写的视频捕捉程序。.zip摄像头编程,采用纯API写的视频捕捉程序。.zip

2011-11-11

ubs通信协议规范中文版,设计UBS时参考

ubs通信协议规范中文版,设计UBS时参考.rarubs通信协议规范中文版,设计UBS时参考.rarubs通信协议规范中文版,设计UBS时参考.rarubs通信协议规范中文版,设计UBS时参考.rarubs通信协议规范中文版,设计UBS时参考.rarubs通信协议规范中文版,设计UBS时参考.rarubs通信协议规范中文版,设计UBS时参考.rar

2011-11-11

USB 2.0 应用系统开发实例精讲

USB 2.0 应用系统开发实例精讲.rarUSB 2.0 应用系统开发实例精讲.rarUSB 2.0 应用系统开发实例精讲.rarUSB 2.0 应用系统开发实例精讲.rarUSB 2.0 应用系统开发实例精讲.rarUSB 2.0 应用系统开发实例精讲.rarUSB 2.0 应用系统开发实例精讲.rarUSB 2.0 应用系统开发实例精讲.rar

2011-11-11

Linux设备驱动程序(第三版)

Linux设备驱动程序(第三版)Linux设备驱动程序(第三版)Linux设备驱动程序(第三版)Linux设备驱动程序(第三版)Linux设备驱动程序(第三版)Linux设备驱动程序(第三版)Linux设备驱动程序(第三版)

2011-11-11

ARM920T内核技术手册

ARM920T内核技术手册ARM920T内核技术手册ARM920T内核技术手册ARM920T内核技术手册ARM920T内核技术手册ARM920T内核技术手册ARM920T内核技术手册

2011-11-11

王田苗的ARM_UCOS移植,比较经典的一本书了

王田苗的ARM_UCOS移植,比较经典的一本书了王田苗的ARM_UCOS移植,比较经典的一本书了王田苗的ARM_UCOS移植,比较经典的一本书了王田苗的ARM_UCOS移植,比较经典的一本书了王田苗的ARM_UCOS移植,比较经典的一本书了

2011-11-11

华清远见培训-WinCE BSP开发

华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发华清远见培训-WinCE BSP开发

2011-11-11

UCOS GUI3.98源码

UCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rarUCGUI3.98源码.rar

2011-11-04

nrf24l01程序(C51源代码)

nrf24l01程序(C51源代码).rarnrf24l01程序(C51源代码).rarnrf24l01程序(C51源代码).rarnrf24l01程序(C51源代码).rarnrf24l01程序(C51源代码).rarnrf24l01程序(C51源代码).rarnrf24l01程序(C51源代码).rarnrf24l01程序(C51源代码).rar

2011-11-04

RTOS(uCOS-ii)应用开发指南

RTOS(uCOS-ii)应用开发指南.rarRTOS(uCOS-ii)应用开发指南.rarRTOS(uCOS-ii)应用开发指南.rarRTOS(uCOS-ii)应用开发指南.rarRTOS(uCOS-ii)应用开发指南.rarRTOS(uCOS-ii)应用开发指南.rarRTOS(uCOS-ii)应用开发指南.rar

2011-11-04

VMware.Workstation.v8 密钥生成器

VMware.Workstation.v8.0.0.471780.Keymaker.zipVMware.Workstation.v8.0.0.471780.Keymaker.zipVMware.Workstation.v8.0.0.471780.Keymaker.zipVMware.Workstation.v8.0.0.471780.Keymaker.zip

2011-11-04

精通Windows.API-函数、接口、编程实例

精通Windows.API-函数、接口、编程实例.pdf精通Windows.API-函数、接口、编程实例.pdf精通Windows.API-函数、接口、编程实例.pdf精通Windows.API-函数、接口、编程实例.pdf精通Windows.API-函数、接口、编程实例.pdf精通Windows.API-函数、接口、编程实例.pdf

2011-11-04

C++ GUI PROGRAMMING WITH QT4

C++ GUI PROGRAMMING WITH QT4C++ GUI PROGRAMMING WITH QT4C++ GUI PROGRAMMING WITH QT4C++ GUI PROGRAMMING WITH QT4C++ GUI PROGRAMMING WITH QT4

2011-11-04

Windows程序设计(第五版)

Windows程序设计.pdfWindows程序设计.pdfWindows程序设计.pdfWindows程序设计.pdfWindows程序设计.pdfWindows程序设计.pdfWindows程序设计.pdfWindows程序设计.pdf

2011-11-04

Source Insight汉化绿色版,带半个汉子解决方案

Source Insight汉化绿色版,带半个汉子解决方案Source Insight汉化绿色版,带半个汉子解决方案Source Insight汉化绿色版,带半个汉子解决方案Source Insight汉化绿色版,带半个汉子解决方案Source Insight汉化绿色版,带半个汉子解决方案

2011-09-24

windows下的Jlink驱动程序 V4.3.5a

windows下的Jlink驱动程序

2011-09-02

linux下的jlink驱动程序 V4.3.4a

linux下的jlink驱动程序 V4.3.4alinux下的jlink驱动程序 V4.3.4alinux下的jlink驱动程序 V4.3.4alinux下的jlink驱动程序 V4.3.4alinux下的jlink驱动程序 V4.3.4alinux下的jlink驱动程序 V4.3.4alinux下的jlink驱动程序 V4.3.4a

2011-09-02

ucosII内核详解(感觉还行的一本书)

ucosII内核详解(感觉还行的一本书)

2011-01-09

自己写的 STM32 串口UART驱动, 不用固件库。超级终端界面按键.rar

自己写的 STM32 串口UART驱动, 不用固件库。超级终端界面按键.rar

2011-01-09

HX8347_英文资料_初始化程序

HX8347_英文资料_初始化程序.rar

2011-01-09

AT24C系列EEPROM数据手册

AT24C系列EEPROM数据手册.rar

2011-01-09

AD7843触摸屏汇编程序

AD7843触摸屏汇编程序

2011-01-09

触摸屏芯片ADS7846_ADS7843驱动程序(C51)

触摸屏芯片ADS7846_ADS7843驱动程序

2011-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除