皮皮网
皮皮网

【顺势之王副图指标公式源码】【橙子视频源码】【android控件 源码】emacs源码安装

来源:tracup 源码 发表时间:2024-11-30 06:43:07

1.Linux中的./configure
2.世界上最长的码安源代码
3.GNU Emacs安装指南
4.为什么没有开箱即用的emacs的整合包呢?
5.Windows 10 在WSL环境下使用Linux图形软件 (适用Vim,Emacs等)

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

世界上最长的源代码

       我现在可以给你写出世界上最长的代码啊!请看:

       #include <iostream.h>

       void main()

       {

       cout<<"the longest code in the world!"<<endl;

       cout<<"the longest code in the world!"<<endl;

       cout<<"the longest code in the world!"<<endl;

       cout<<"the longest code in the world!"<<endl;

       cout<<"the longest code in the world!"<<endl;

       cout<<"the longest code in the world!"<<endl;//以下重复...次

       }

GNU Emacs安装指南

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

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

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

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

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

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

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

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

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

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

       在某些系统上,特别是 GNU/Linux,其他支持复杂脚本显示的库,如 'mn-db'、'libmn-flt' 和 'libotf',aide gradle 源码可能已经存在或作为额外的软件包提供。在 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的整合包呢?

       emacs是一种非常强大的存在,但回想自己入门emacs是一个相当痛苦的过程,在不同的机器上,配置我所习惯的emacs环境得花掉我1天的时间。类比linux,源码开始LFS使用linux是非常痛苦的过程,但是像fedora、ubuntu这样的发行版,让普通人,初学者快速入门使用了linux。问下,是否存在emacs的发行版,例如整合了完成某项工作的一个最佳实践的工具集和一个使用习惯的开箱即用的emacs发行包呢?类比eclipse,存在针对JavaScript的有Aptana;针对rails的有RadRails;真对PHP的有Zend Studio;真对java的有MyEclipse;

Windows 在WSL环境下使用Linux图形软件 (适用Vim,Emacs等)

       在Windows 中体验Linux图形软件,特别是对于那些偏爱GNU工具如Vim、Emacs的开发者来说,可能会遇到与Windows不兼容的问题。我曾尝试过多种解决方案,但效果并不理想。然而,如果你希望在Windows系统中获得接近原生Linux开发环境,这篇文章或许能帮到你。

       首先,我们需要配置Windows Subsystem for Linux (WSL),开启相关服务。你可以通过Cortana搜索并启用WSL特性。接着,安装Ubuntu,设置好后启动,建议选择与Ubuntu版本匹配的镜像源以避免后续问题。

       为了在WSL环境中显示图形界面,MobaXterm是不错的选择,它内置了Xserver。记得在使用前确保MobaXterm运行且Xserver开启。默认情况下,MobaXterm可能不允许直接复制Windows剪贴板内容,需要在设置中调整。

       推荐使用wsl-terminal,它简化了在WSL中使用终端应用程序的过程。只需通过右键菜单添加功能,比如添加与Emacs的启动快捷方式。同时,还可以更改颜色主题,使其更易读。

       对于中文支持,需要导入Windows字体、安装输入法(如谷歌拼音),并调整环境变量和输入法快捷键。记得确保WSL在开机时自动启动相关服务,如dbus和fcitx。

       安装Emacs时,可以选择编译源码或通过apt-get安装。这样,你就可以根据需要配置其他应用,只是可能需要安装额外的依赖。

       尽管wsl-terminal在默认情况下可能与zsh不兼容,但通过修改配置文件,可以轻松解决这个问题。最后,对于WSL的管理,你可以通过cmd或PowerShell运行相关命令,如wsl、bash或Linux系统名称,来直接操作你的Linux环境。

       希望这些步骤能帮助你在Windows 的WSL环境中顺利使用Linux图形软件。如果你遇到任何问题,随时可以尝试解决或重置子系统。

相关栏目:焦点