⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autobook_258.html

📁 Autoconf使用手册
💻 HTML
字号:
<HTML><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><!-- Created on September, 12  2004 by texi2html 1.64 --><!-- Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)            Karl Berry  <karl@freefriends.org>            Olaf Bachmann <obachman@mathematik.uni-kl.de>            and many others.Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>Send bugs and suggestions to <texi2html@mathematik.uni-kl.de> --><HEAD><TITLE>Autoconf, Automake, and Libtool: Cross Compilation</TITLE><META NAME="description" CONTENT="Autoconf, Automake, and Libtool: Cross Compilation"><META NAME="keywords" CONTENT="Autoconf, Automake, and Libtool: Cross Compilation"><META NAME="resource-type" CONTENT="document"><META NAME="distribution" CONTENT="global"><META NAME="Generator" CONTENT="texi2html 1.64"><script language="Javascript"><!--    // Check the browser version.    function checkVersion() {      if (navigator.appVersion.charAt(0)>=3) return true;      if (navigator.appVersion.charAt(0)>=4) return true;      else return false;    }      if (checkVersion()) {             homeon = new Image();             homeon.src = "homeon.png";             homeoff = new Image();             homeoff.src = "home.png";             tocon = new Image();             tocon.src = "tocon.png";             tocoff = new Image();             tocoff.src = "toc.png";             indexon = new Image();             indexon.src = "indexon.png";             indexoff = new Image();             indexoff.src = "index.png";             helpon = new Image();             helpon.src = "helpon.png";             helpoff = new Image();             helpoff.src = "help.png";             backon = new Image();             backon.src = "backon.png";             backoff = new Image();             backoff.src = "back.png";             forwardon = new Image();             forwardon.src = "forwardon.png";             forwardoff = new Image();             forwardoff.src = "forward.png";             prevon = new Image();             prevon.src = "prevon.png";             prevoff = new Image();             prevoff.src = "prev.png";             nexton = new Image();             nexton.src = "nexton.png";             nextoff = new Image();             nextoff.src = "next.png";             upon = new Image();             upon.src = "upon.png";             upoff = new Image();             upoff.src = "up.png";         }     function img_act(imgName) {             if (checkVersion()) {             imgOn = eval(imgName + "on.src");             document [imgName].src = imgOn;             }     }     function img_inact(imgName) {             if (checkVersion()) {             imgOff = eval(imgName + "off.src");             document [imgName].src = imgOff;             }     }// --></SCRIPT></HEAD><BODY LANG="EN" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#6688AA" VLINK="#336688" ALINK="#808080"><A NAME="SEC258"></A><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=10><TR VALIGN="TOP"><TD ALIGN="MIDDLE" WIDTH=50 BGCOLOR="#e6e6e6"><TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook_257.html#SEC257" onMouseover="img_act('prev')" onMouseout="img_inact('prev')"><IMG SRC="prev.png" BORDER="0" ALT="Back: Package Installation" ALIGN="MIDDLE" NAME="prev"></A></TD></TR><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook_259.html#SEC259" onMouseover="img_act('next')" onMouseout="img_inact('next')"><IMG SRC="next.png" BORDER="0" ALT="Forward: Host and Target" ALIGN="MIDDLE" NAME="next"></A></TD></TR><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook_13.html#SEC13" onMouseover="img_act('back')" onMouseout="img_inact('back')"><IMG SRC="back.png" BORDER="0" ALT="FastBack: Invoking configure" ALIGN="MIDDLE" NAME="back"></A></TD></TR><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook.html#SEC_Top" onMouseover="img_act('up')" onMouseout="img_inact('up')"><IMG SRC="up.png" BORDER="0" ALT="Up: Top" ALIGN="MIDDLE" NAME="up"></A></TD></TR><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook_271.html#SEC271" onMouseover="img_act('forward')" onMouseout="img_inact('forward')"><IMG SRC="forward.png" BORDER="0" ALT="FastForward: Installing GNU Autotools" ALIGN="MIDDLE" NAME="forward"></A></TD></TR><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook.html#SEC_Top" onMouseover="img_act('home')" onMouseout="img_inact('home')"><IMG SRC="home.png" BORDER="0" ALT="Top: Autoconf, Automake, and Libtool" ALIGN="MIDDLE" NAME="home"></A></TD></TR><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook_toc.html#SEC_Contents" onMouseover="img_act('toc')" onMouseout="img_inact('toc')"><IMG SRC="toc.png" BORDER="0" ALT="Contents: Table of Contents" ALIGN="MIDDLE" NAME="toc"></A></TD></TR><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook_285.html#SEC285" onMouseover="img_act('index')" onMouseout="img_inact('index')"><IMG SRC="index.png" BORDER="0" ALT="Index: Index" ALIGN="MIDDLE" NAME="index"></A></TD></TR><TR VALIGN="TOP" ALIGN="LEFT"><TD VALIGN="MIDDLE" ALIGN="LEFT"><A HREF="autobook_abt.html#SEC_About" onMouseover="img_act('help')" onMouseout="img_inact('help')"><IMG SRC="help.png" BORDER="0" ALT="About: About this document" ALIGN="MIDDLE" NAME="help"></A></TD></TR></TABLE></TD><TD ALIGN="LEFT"><H1> 26. Cross Compilation with GNU Autotools </H1><!--docid::SEC258::--><P>Normally, when you build a program, it runs on the system on which youbuilt it.  For example, if you compile a simple program, you canimmediately run it on the same machine.</P><P>This is normally how GNU Autotools is used as well.  You run the<TT>`configure'</TT> script on a particular machine, you run <CODE>make</CODE> onthe same machine, and the resulting program also runs on the samemachine. However, there are cases where it is useful to build a programon one machine and run it on another.</P><P>One common example is a program which runs on an <EM>embedded system</EM>.An embedded system is a special purpose computer, often part of a largersystem, such as the computers found within modern automobiles.  Anembedded system often does not support a general programmingenvironment, so there is no way to run a shell or a compiler on theembedded system.  However, it is still necessary to write programs torun on the embedded system.  These programs are built on a differentmachine, normally a general purpose computer.  The resulting programscan not be run directly on the general purpose computer.  Instead, theyare copied onto the embedded system and run there.  (We are omittingmany details and possibilities of programming embedded systems here, butthis should be enough to understand the the points relevant toGNU Autotools.  For more information, see a book such as <CITE>ProgrammingEmbedded Systems</CITE> by Michael Barr.)</P><P>Another example where it is useful to build a program on one machine andrun it on another is the case when one machine is much faster.  It cansometimes be useful to use the faster machine as a compilation server,to build programs which are then copied to the slower machine and runthere.</P><P>Building a program on one type of system which runs on a different typeof system is called <EM>cross compiling</EM>.  Doing this requires aspecially configured compiler, known as a <EM>cross compiler</EM>.Similarly, we speak of cross assemblers, cross linkers, etc.  When it isnecessary to explicitly distinguish the ordinary sort of compiler, whoseoutput runs on the same type of system, from a cross compiler, we callthe ordinary compiler a <EM>native compiler</EM>.  Although the debugger isnot strictly speaking a compilation tool, it is meaningful to speak of across debugger: a debugger which is used to debug code which runs onanother system.</P><P>GNU Autotools supports cross compilation in two distinct though relatedways.  Firstly, GNU Autotools supports configuring and building a crosscompiler or other cross compilation tools.  Secondly, GNU Autotoolssupports building tools using a cross compiler (this is sometimes calleda <EM>Canadian Cross</EM>).  In the rest of this chapter we will explainhow to use GNU Autotools to do these tasks.</P><P>If you are not interested in doing cross compilation, you may skip thischapter.  However, if you are developing <TT>`configure'</TT> scripts, werecommend that you at least skim this chapter to get some hints as tohow to write them so that it is possible to build your package using across compiler; in particular, see <A HREF="autobook_268.html#SEC268">26.4.6 Supporting Building with a Cross Compiler</A>.Even if your package is useless for an embedded system, it is possiblethat somebody with a very fast compilation server will want to use it tocross compile your package.</P><P><A NAME="Host and Target"></A></TR></TABLE><BR>  <FONT SIZE="-1">This document was generatedby <I>Gary V. Vaughan</I> on <I>September, 12  2004</I>using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html"><I>texi2html</I></A></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -