皮皮网

【病毒式传播源码】【iappQQ轰炸源码】【物料溯源码】emacs 源码编译安装

2024-11-18 17:18:40 来源:betterscroll 源码分析

1.Linux中的./configure
2.GNU Emacs安装指南
3.如何使用emacs编写c语言程序,并编译运行

emacs 源码编译安装

Linux中的./configure

       Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。

       ä¸Žä¸€äº›æŠ€å·§ç›¸æ¯”,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。

       ä¸ºæ­¤æˆ‘转载了一篇关于Configure选项配置的详细介绍。供大家参考

       'configure'脚本有大量的命令行选项。对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的。带上'--help'选项执行'configure'脚本可以看到可用的所有选项。尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的。下面对每一个选项进行简略的介绍:

       --cache-file=FILE

       'configure'会在你的系统上测试存在的特性(或者bug!)。为了加速随后进行的配置,测试的结果会存储在一个cache file里。当configure一个每个子树里都有'configure'脚本的复杂的源码树时,一个很好的cache file的存在会有很大帮助。

       --help

       è¾“出帮助信息。即使是有经验的用户也偶尔需要使用使用'--help'选项,因为一个复杂的项目会包含附加的选项。例如,GCC包里的'configure'脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项。

       --no-create

       'configure'中的一个主要函数会制作输出文件。此选项阻止'configure'生成这个文件。你可以认为这是一种演习(dry run),尽管缓存(cache)仍然被改写了。

       --quiet

       --silent

       å½“'configure'进行他的测试时,会输出简要的信息来告诉用户正在作什么。这样作是因为'configure'可能会比较慢,没有这种输出的话用户将会被扔在一旁疑惑正在发生什么,使用这两个选项中的任何一个都会把你扔到一旁。(译注:这两句话比较有意思,原文是这样的:If there was no such output,源译安 the user would be left wondering what is happening. By using this option, you too can be left wondering!)

       --version

       æ‰“印用来产生'configure'脚本的Autoconf的版本号。

       --prefix=PEWFIX

       '--prefix'是最常用的选项。制作出的'Makefile'会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分。举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到"/opt/gnu/share":

       $ ./configure --prefix=/opt/gnu

       --exec-prefix=EPREFIX

       ä¸Ž'--prefix'选项类似,但是他是用来设置结构倚赖的文件的安装位置,编译好的'emacs'二进制文件就是这样一个问件。如果没有设置这个选项的话,默认使用的选项值将被设为和'--prefix'选项值一样。

       --bindir=DIR

       æŒ‡å®šäºŒè¿›åˆ¶æ–‡ä»¶çš„安装位置,这里的二进制文件定义为可以被用户直接执行的程序。

       --sbindir=DIR

       æŒ‡å®šè¶…级二进制文件的安装位置。这是一些通常只能由超级用户执行的程序。

       --libexecdir=DIR

       æŒ‡å®šå¯æ‰§è¡Œæ”¯æŒæ–‡ä»¶çš„安装位置。与二进制文件相反,这些文件从来不直接由用户执行,但是可以被上面提到的二进制文件所执行。

       --datadir=DIR

       æŒ‡å®šé€šç”¨æ•°æ®æ–‡ä»¶çš„安装位置。

       --sysconfdir=DIR

       æŒ‡å®šåœ¨å•ä¸ªæœºå™¨ä¸Šä½¿ç”¨çš„只读数据的安装位置。

       --sharedstatedir=DIR

       æŒ‡å®šå¯ä»¥åœ¨å¤šä¸ªæœºå™¨ä¸Šå…±äº«çš„可写数据的安装位置。

       --localstatedir=DIR

       æŒ‡å®šåªèƒ½å•æœºä½¿ç”¨çš„可写数据的安装位置。

       --libdir=DIR

       æŒ‡å®šåº“文件的安装位置。

       --includedir=DIR

       æŒ‡å®šC头文件的安装位置。其他语言如C++的头文件也可以使用此选项。

       --oldincludedir=DIR

       æŒ‡å®šä¸ºé™¤GCC外编译器安装的C头文件的安装位置。

       --infodir=DIR

       æŒ‡å®šInfo格式文档的安装位置.Info是被GNU工程所使用的文档格式。

       --mandir=DIR

       æŒ‡å®šæ‰‹å†Œé¡µçš„安装位置。

       --srcdir=DIR

       è¿™ä¸ªé€‰é¡¹å¯¹å®‰è£…没有作用,他会告诉'configure'源码的位置。一般来说不用指定此选项,因为'configure'脚本一般和源码文件在同一个目录下。

       --program-prefix=PREFIX

       æŒ‡å®šå°†è¢«åŠ åˆ°æ‰€å®‰è£…程序的名字上的前缀。例如,使用'--program-prefix=g'来configure一个名为'tar'的程序将会使安装的程序被命名为'gtar'。当和其他的安装选项一起使用时,这个选项只有当他被`Makefile.in'文件使用时才会工作。

       --program-suffix=SUFFIX

       æŒ‡å®šå°†è¢«åŠ åˆ°æ‰€å®‰è£…程序的名字上的后缀。

       --program-transform-name=PROGRAM

       è¿™é‡Œçš„PROGRAM是一个sed脚本。当一个程序被安装时,他的名字将经过`sed -e PROGRAM'来产生安装的名字。

       --build=BUILD

       æŒ‡å®šè½¯ä»¶åŒ…安装的系统平台。如果没有指定,默认值将是'--host'选项的值。

       --host=HOST

       æŒ‡å®šè½¯ä»¶è¿è¡Œçš„系统平台。如果没有指定。将会运行`config.guess'来检测。

       --target=GARGET

       æŒ‡å®šè½¯ä»¶é¢å‘(target to)的系统平台。这主要在程序语言工具如编译器和汇编器上下文中起作用。如果没有指定,默认将使用'--host'选项的值。

       --disable-FEATURE

       ä¸€äº›è½¯ä»¶åŒ…可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置。如果默认是提供这些特性,可以使用'--disable-FEATURE'来禁用它,这里'FEATURE'是特性的名字,例如:

       $ ./configure --disable-gui

       -enable-FEATURE[=ARG]

       ç›¸åçš„,一些软件包可能提供了一些默认被禁止的特性,可以使用'--enable-FEATURE'来起用它。这里'FEATURE'是特性的名字。一个特性可能会接受一个可选的参数。例如:

       $ ./configure --enable-buffers=

       `--enable-FEATURE=no'与上面提到的'--disable-FEATURE'是同义的。

       --with-PACKAGE[=ARG]

       åœ¨è‡ªç”±è½¯ä»¶ç¤¾åŒºé‡Œï¼Œæœ‰ä½¿ç”¨å·²æœ‰è½¯ä»¶åŒ…和库的优秀传统。当用'configure'来配置一个源码树时,可以提供其他已经安装的软件包的信息。例如,倚赖于Tcl和Tk的BLT器件工具包。要配置BLT,可能需要给'configure'提供一些关于我们把Tcl和Tk装的何处的信息:

       $ ./configure --with-tcl=/usr/local --with-tk=/usr/local

       '--with-PACKAGE=no'与下面将提到的'--without-PACKAGE'是同义的。

       --without-PACKAGE

       æœ‰æ—¶å€™ä½ å¯èƒ½ä¸æƒ³è®©ä½ çš„软件包与系统已有的软件包交互。例如,你可能不想让你的新编译器使用GNU ld。通过使用这个选项可以做到这一点:

       $ ./configure --without-gnu-ld

       --x-includes=DIR

       è¿™ä¸ªé€‰é¡¹æ˜¯'--with-PACKAGE'选项的一个特例。在Autoconf最初被开发出来时,流行使用'configure'来作为Imake的一个变通方法来制作运行于X的软件。'--x-includes'选项提供了向'configure'脚本指明包含X头文件的目录的方法。

       --x-libraries=DIR

       ç±»ä¼¼çš„,'--x-libraries'选项提供了向'configure'脚本指明包含X库的目录的方法。

       åœ¨æºç æ ‘中运行'configure'是不必要的同时也是不好的。一个由'configure'产生的良好的'Makefile'可以构筑源码属于另一棵树的软件包。在一个独立于源码的树中构筑派生的文件的好处是很明显的:派生的文件,如目标文件,会凌乱的散布于源码树。这也使在另一个不同的系统或用不同的配置选项构筑同样的目标文件非常困难。建议使用三棵树:一棵源码树(source tree),一棵构筑树(build tree),一棵安装树(install tree)。这里有一个很接近的例子,是使用这种方法来构筑GNU malloc包:

       $ gtar zxf mmalloc-1.0.tar.gz

       $ mkdir build && cd build

       $ ../mmalloc-1.0/configure

       creating cache ./config.cache

       checking for gcc... gcc

       checking whether the C compiler (gcc ) works... yes

       checking whether the C compiler (gcc ) is a cross-compiler... no

       checking whether we are using GNU C... yes

       checking whether gcc accepts -g... yes

       checking for a BSD compatible install... /usr/bin/install -c

       checking host system type... i-pc-linux-gnu

       checking build system type... i-pc-linux-gnu

       checking for ar... ar

       checking for ranlib... ranlib

       checking how to run the C preprocessor... gcc -E

       checking for unistd.h... yes

       checking for getpagesize... yes

       checking for working mmap... yes

       checking for limits.h... yes

       checking for stddef.h... yes

       updating cache ../config.cache

       creating ./config.status

       è¿™æ ·è¿™æ£µæž„筑树就被配置了,下面可以继续构筑和安装这个包到默认的位置'/usr/local':

       $ make all && make install

GNU Emacs安装指南

       此文件包含有关构建 GNU Emacs 的一般信息。在大多数 Unix 系统上,码编构建 Emacs 时,源译安首先需要运行 'configure' shell 脚本。码编它会尝试推导出各种系统依赖的源译安变量和功能的正确值,并找到保存某些系统头文件和库的码编病毒式传播源码目录。在少数情况下,源译安你可能需要明确告诉 configure 在哪里找到某些东西,码编或者使用什么选项。源译安

       configure 在几个子目录下创建了一个 'Makefile',码编以及一个包含系统相关定义的源译安 'src/config.h' 文件。随后,码编运行 'make' 工具,源译安iappQQ轰炸源码并为你的码编系统构建软件包。

       构建 Emacs 需要 GNU make,源译安这是在 Emacs 支持的大多数系统上默认的 'make' 程序。

       在构建 Emacs 的步骤中,首先获取并解压 Emacs 发行版,使用类似这样的命令,其中 VERSION 是 Emacs 版本号。然后 cd 到解压 Emacs 的目录并调用 'configure' 脚本。如果在源代码目录之外创建了一个单独的目录,在那里构建 Emacs 并从那里调用 'configure',也是可行的。

       在 'configure' 完成后,物料溯源码它会打印出关于系统配置的几行细节。仔细阅读这些细节,寻找任何可疑之处,如错误的 CPU 和操作系统名称、错误的头文件或库的位置,或缺少你知道已安装在系统上的库等。如果你发现有什么不对,你可能需要传递给 'configure' 一个或多个选项,指定明确的机器配置名称、在何处找到各种头文件和库等。请参考详细的构建和安装部分以获取帮助。

       如果 'configure' 没有找到一些图像支持库,dubbo源码书籍如 Xpm 和 jpeg,请参考图像支持库部分。如果 'configure' 打印的详细信息对您没有任何意义,但没有明显错误,通常可以假设 'configure' 已完成其工作并继续。

       调用 "make" 程序,如果 'make' 成功,它会在 'src' 目录下建立一个可执行程序 'emacs'。你可以尝试这个程序,以确保它能正常工作。为了进一步测试 Emacs,主要是体育源码app为了帮助开发者。

       假设程序 'src/emacs' 启动并显示其开始屏幕,你可以将程序及其辅助文件安装到其安装目录中。你现在已经准备好使用 Emacs 了。如果你想节省空间,可以从构建 Emacs 的目录中删除程序二进制文件和对象文件。如果你不打算再次构建 Emacs,可以删除整个构建目录,但保留它对调试很有用。

       如果你想用不同的配置选项再次构建 Emacs,首先要清理源代码目录。请记住,安装程序会自动压缩(只要你有 'gzip' 程序)那些已安装的并有相应 .elc 版本的 Lisp 源代码(.el)文件以及信息文件,以节省空间。

       你可以阅读有关常见 make 目标的简短摘要。对于需要复杂文本布局支持的系统,如印度语和高棉语,以及需要阿拉伯语整形支持的脚本(阿拉伯语和波斯语),Emacs 需要可选的库来正确显示。如果安装了 HarfBuzz 库,Emacs 就会用它来构建并使用它来实现这一目的。在 GNU/Linux 和 Posix 系统上,HarfBuzz 是首选的整形引擎。

       在某些系统上,特别是 GNU/Linux,其他支持复杂脚本显示的库,如 'mn-db'、'libmn-flt' 和 'libotf',可能已经存在或作为额外的软件包提供。在 MS-Windows 上,如果 HarfBuzz 不可用,Emacs 将使用作为操作系统一部分的 Uniscribe 整形引擎。

       Emacs 需要库来显示图像,但 PBM 和 XBM 图像除外,它们的支持是内置的。在某些系统上,特别是 GNU/Linux,这些库可能已经存在或作为额外的包提供。在 FreeBSD 上,命令是 'pkg install -ypkg rquery %dn emacs-devel'。

       额外的字体通常不包含在 Emacs 发行版中,也不进行安装。在 GNU 系统上,Emacs 同时支持 X 字体和本地字体(即由 fontconfig 库管理的字体)。如果你需要比你的发行版通常提供的更多字体,你必须自己安装它们。在 GNU/Linux 系统上,有许多免费的 Unicode 字体可供选择。

       许多 GNU/Linux 系统默认不附带开发包,这些包包含了你运行 Emacs 所需的文件,但不包括你编译它所需的文件。例如,要编译支持 X 和图形库的 Emacs,你可能需要安装 X 开发包以及 jpeg、png 等包的开发版本。

       在 FreeBSD 上,命令是 'pkg install -ypkg rquery %dn emacs-devel'。'configure' 调用提供了关于如何为特定系统配置 Emacs 的详细信息。在完成配置后,'configure' 会打印它所做的事情的描述并创建一个 shell 脚本 'config.status',它在运行时重新创建相同的配置。

       在构建和安装过程中,有许多额外的选项和变量可供使用,以自定义 Emacs 的安装位置、文件结构等。例如,你可以通过在 'make' 命令行中指定变量值来改变安装 Emacs 及其数据文件的位置。

如何使用emacs编写c语言程序,并编译运行

       1.进入emacs 后,C-x,C-f (意思是先按ctrl+x再接着按ctrl+f)找到文件或新建文件

       ç„¶åŽç¼–写程序,如hello.c

       2.保存所编写的程序,命令是C-x,C-s,(先按ctrl+x,再按ctrl+s)

       3.编译程序。通过命令M-x (alt+x)shell或M-x eshell进行shell模式,然后使用gcc -Wall -o hehe hehe.c进行编译,如果没有安装gcc,请先安装gcc

       5.切换回编辑区: c-x b ’buffername‘可以切换到某个buffer,如要切换回刚才那个hehe.c编辑区,输入c-x b "buffername"(例如先按ctrl+x 再输入b 再输入hehe.c)。有木有发现,emacs比vi好用多了。

       äºŒã€Emacs按键

       Vim 把控制和编辑分成了两个模式,单独操作,互不影响。而Emacs是同时进行编辑和控制,只不过控制命令需要使用控制键。

       Emacs的控制键就三个Control,Shift和 Meta,Control 和 Shift 键盘上都有,Meta 在美式键盘中就是Alt,在苹果键盘上是那个很花的四个圈的键,如果键盘上没有Alt (这个要某些欧洲人才会遇到)可以使用Esc 代替,另外Esc 不想Alt 通常当组合键用,它要单独按一下,再按另外的。

       ä»¥åŽæŽ§åˆ¶å‘½ä»¤å°±è¿™æ ·è¡¨ç¤ºï¼š

       C-f   Ctrl+f

       C-M-f   Ctrl+Alt+f

       C-_    Ctrl+Shift+-