導航:首頁 > 源碼編譯 > 編譯配置英語

編譯配置英語

發布時間:2023-07-12 22:38:49

A. linux 下gcc編譯器怎麼把編譯提示信息設置成英文,linux環境要中文,不能修改LONG變數

locale -a 列出你喊辯系統所具備的locale
vi /etc/locale.gen 注釋掉關於中纖滲型文的locale,
在zh_CN.UTF-8或者zh_CN.GB2312前添加#號
locale-gen
source /etc /profile && env_update
注毀猜銷,重新登錄

B. 如何編譯,配置ACE

ACE是個很有用的開放源代碼的C++網路編程開發包,利用它比直接用API更有利於代碼的健壯性,可移植性,並相對簡單。
估計大家剛接觸ACE時,都有一定難度,說不定就半途放棄了,這是我學ACE兩天中的總結,基本上不成文,但我想研究到ACE的你一定會明白下文的意思。

一、ACE官方主頁: http://www.cs.wustl.e/~schmidt/ACE.html
下載地址: http://deuce.doc.wustl.e/Download.html

Building and Installing ACE:http://www.dre.vanderbilt.e/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html
我下載的是Latest Beta Kit中的ACE.zip(Latest Release中的壓縮包好像有問題,我有WinRAR3.30解壓縮報錯)

二、解壓縮後放在D盤
D:\ACE_wrappers
三、在D:\ACE_wrappers\ace目錄下新建文件config.h加入一行
#include "ace/config-win32.h"

四、編譯:用VC6.0打開D:\ACE_wrappers\ace\ace.dsw
左側顯示 ACE DLL classes
ACE LIB classes
或1、從菜單上選擇「編譯」,「放置可遠行配置」,選擇你需要的工程配置
「編譯」,「重建全部」(或任一,如ACE DLL - Win32 MFC Debug)
此過程可能持續半小時至一個小時不等
或2、從菜單上選擇「編譯」,「批構建」,選擇你需要的工程配置
此過程可能持續二至四個鍾頭

產生的.lib文件位於D:\ACE_wrappers\ace\下,
產生的.dll文件位於D:\ACE_wrappers\bin\下

同樣打開ace_static.dsw
編譯
ACEs.lib
ACEsd.lib
ACE_RMCasts.lib
ACE_RMCastsd.lib
TMCasts.lib
TMCastsd.lib
ACE生成的dll和lib文件的命名規則:(d = debug,s = static)

debug - aced.lib、debug+static - acesd.lib、release - ace.lib、 release+static - aces.lib

五、樣常式序的編譯
用VC打開D:\ACE_wrappers\tests\tests.dsw
「編譯」,「批構建」

六、自寫程序的工程配置

中篇:ACE程序員教程.pdf中的樣常式序:
網址:http://www.cs.wustl.e/~schmidt/ACE_wrappers/docs/tutorials/guide-tutorials.html

將網頁上的原代碼復制到一新建文件,並命名為server.cpp
用VC打開,編譯,重建全部,彈出對話框,「This build command require ...「,點」是「

會出現以下錯誤

如果有「Cannot open include file: 'ace/SOCK_Acceptor.h': No such file or directory」
工程-設置-C/C++: Preprocessor,附加包含路徑:D:/ACE_wrappers

如果有「 You must link against multi-threaded libraries when using ACE (check your project settings)」
工程-設置-C/C++: Code Generation - Use run-time library : Debug Multithreaded Dll

如果有「error C2065: 'ACE_ERROR' : undeclared identifier」
error C2065: 'ACE_DEBUG' : undeclared identifier
#include "ace/Log_Msg.h"
error C4716: 'ace_main_i' : must return a value
在main中加入
return 0;

「error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl」
工程-設置-Link-Input: 對象/庫模塊:添加aced.lib 附加庫路徑:D:\ACE_wrappers\ace

編譯client中遇到的問題
1、error C2039: 'sprintf' : is not a member of 'ACE_OS'

#include "ace/OS_NS_stdio.h"

2、error C2039: 'strlen' : is not a member of 'ACE_OS'

#include "ace/OS_NS_string.h"
3、error C2059: syntax error : '?'
錯誤在這一句: ACE_DEBUG((LM_DEBUG,?Usage egX <hostname> <port_number>\n?));
將?改為"

4、無法找到動態鏈接庫aced.dll於指定的路徑
為系統變數PATH加上D:\ACE_wrappers\bin

靜態包含:
工程-設置-C/C++-預處理程序定義中加入 ,ACE_AS_STATIC_LIBS

例1server編譯後生成
server.exe 16K serverd.exe 97K servers.exe 124K serversd.exe 669K
(servers.exe較適合發布)

例2 client編譯後生成
client.exe 16K clientd.exe 97K clients.exe 124K clientsd.exe 669K
(clients.exe較適合發布)

測試 clients 127.0.0.1 1919
servers 1919

下面是馬維達老師寫的:(轉自huihoo)

發表於: 3/31/2003 - 04:24
翻譯的一點小東西,希望能對大家有幫助。
其實也不敢稱為是翻譯的,水平太爛了,大家將就著看吧 :)

使用Microsoft Visual C++ 在win32平台上生成和安裝ACE:

注意:關於MSVC5.0和Service Pack 3的使用有一些問題,過去一些用戶在sp2中使用良好的代碼在sp3種卻會引發一些問題。感謝Bill 的細心查找,這一神秘的問題被解決了。答案?(哦,這兒有一個好答案。。。)這可能是因為有多個版本的sp3較早版本的sp3有一些bug,而後來的版本修正了這些錯誤,從微軟網站上下載的1998年6月16日版本的sp3是一個良好的版本。如果X03-50158是那些擁有sp3的光碟序列號的一部分,那麼這些版本也是良好的。但是不管任何版本的sp3,其STL的實現都有錯誤,詳細情況請瀏覽http://www.dinkumware.com/vc_fixes.html。感謝Ben Eng對這些錯誤的修正。
現在的SP4(希望只有一個版本)已經修正了STL中的死鎖問題。
我們現在將不再積極的支持MSVC 4.X以及以前的版本,ACE可和這些編譯器一起工作但是可能會丟失一些好處。
1. 將ACE分發包界壓縮到一個目錄中,這將在那個目錄中生成一個包含ACE的目錄ACE_wrappers。接下來的步驟中假設ACE分發包被解壓縮到ACE_ROOT=C:\ACE_wrappers中,因此ACE將會存在於ACE_ROOT\ace目錄中。
2. 在ACE_ROOT\ace目錄中創建一個文件,命名為config.h,其內容為:
#include "ace/config-win32.h"
3. 在VC++中載入ACE的工程文件(ACE_ROOT\ace\ace.dsw)
4. 每個工程都會包含多個配置,這些配置是Debug/Release, MFC/Non-MFCh和Static/Dynamic庫版本等選項的混合。確定你所需要的構造(例如,調試代碼需要ACE的調試版本)。所有這些不同的配置可以為你提供一些便利,你可以或者採用不同的模式以構造不同配置的應用,或者通過改變ace\config.h來改變在NT上的不同配置。
注意:如果你使用動態連接,請保證ACE_ROOT\bin被添加到你的path環境變數中,否則你將在運行程序的時候碰到尋找ace.dll或者aced.dll的問題。
5. 如果你在Windows NT或者Windows 2k上構建ACE,你可以馬上開始構造她而不需任何改變,如果你在Windows 9x/me上構建,那麼你必須在
ACE_ROOT\ace\config.h.的#include塊之前添加一行:
#define ACE_HAS_WINNT4 0
這將在ACE中移掉一些WinNT/Win2K中特有的代碼。
6. 如果你希望使用MSVC自帶的標准C++頭文件(C++ Standard Draft 2種定義的iostream,cstdio…..),則應該在
ACE_ROOT\ace\config.h.的#include塊之前添加一行:
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
7. 如果需要和MFC一起使用,增加如下定義到你的config.h文件中,注意,如果你想使用spawn一個新的線程,則必須保證使用THR_USE_AFX標志來spawn線程。
#define ACE_HAS_MFC 1
預設的,ACE工程使用MSVC運行時的動態DLL版本,你也可以選擇使用ACE的不關心運行時庫的靜態(LIB)版本。我們選擇僅與動態運行時庫連接的原因在於基本上所有的NT機器上都會安裝這些庫,而我們則可以因此而減小代碼的大小。如果你希望ACE與MFC的靜態版本連接,則可以在config.h中定義ACE_USES_STATIC_MFC。然而,如果你希望靜態的連接所有的庫(包括MSVC運行時庫),就需要自己修改工程文件了。
8. 如果要構建ACE的靜態版本,則需要在config.h中定義ACE_AS_STATIC_LIBS,此宏在那些希望使用ACE的靜態版本的應用工程中也必須定義。
作為一個可選項,你可以在
#include statement in ACE_ROOT\ace\config.h.之前添加一行:
#define ACE_NO_INLINE
來取消函數內聯從而減小靜態庫(和你的運行碼)的大小。
9. ACE DLL和LIB庫的命名規則:
我們使用如下的規則明明使用MSVC的ACE的DLL和LIB文件。
"Library/DLL name" + (是靜態庫嗎 ? "s" : "") + (包含調試信息 ? "d" : "") + {".dll"|".lib"}
在MSVC環境中使用ACE的更多信息可以在這里找到。

-----------------------------------------------------------------------
一、安裝TAO,需要先編譯並安裝ACE。

二、ACE的編譯和安裝步驟見http://www.cs.wustl.e/~schmidt/ACE_wrappers/ACE-INSTALL.html。TAO的編譯和安裝步驟見http://www.cs.wustl.e/~schmidt/ACE_wrappers/TAO/TAO-INSTALL.html。如果你英文程度還可以的話,最好直接閱讀這兩篇文檔。說到底,中文文檔只是「權宜之計」;漢語並不太適合進行邏輯性的表述。

但我還是把其中的一些段落編譯如下(VC 6.0 + ACE-5.2.1 + TAO-1.2.1):

ACE的編譯與安裝

一般規則

ACE中的許多特性可以通過在$ACE_ROOT/ace/config.h中定義一些宏來進行修改。這些宏應該總是在包括針對你的平台的配置文件之前出現。

但是,如果你想要取消/重定義在針對特定平台的配置文件中定義的宏,#undef應該在配置文件之後出現。

如果你計劃在多種平台上編譯ACE,你也許需要考慮克隆源碼樹。

步驟:

1. 將ACE發布文件解壓縮到某個目錄中,在其中將會創建含有所有文件的ACE_wrappers目錄。在下面的步驟中,ACE_wrappers目錄將以ACE_ROOT為名來指稱。

2. 在ACE_ROOT\ace目錄中創建一個名為config.h的文件,在其中包含:

#include 「ace/config-win32.h」

3. 現在載入ACE的項目文件(ACE_ROOT\ace\ace.dsw)。

4. 其中的每個項目都含有若干不同的配置(可混合Debug/Release、MFC/Non-MFC、Static/Dynamic library版本)。你可以從中選擇你所需的配置,或是使用ace/config.h來進行調整。
注意:如果你使用動態鏈接庫,在運行使用ACE的程序時,確定你在PATH中包括了ACE_ROOT\bin。

5. 如果你的系統平台是WinNT或2000,那麼無需任何改動你就可以開始編譯了。如果是Windows 9x/Me,你需要在ACE_ROOT\ace\config.h中的#include語句之前增加:

#define ACE_HAS_WINNT4 0

6. 如果你想要使用MSVC標准C++頭(iostream、cstdio……),在ACE_ROOT\ace\config.h中的#include語句之前增加:

#define ACE_HAS_STANDARD_CPP_LIBRARY 1

7. 要與MFC一起使用ACE,再增加下面的定義:

#define ACE_HAS_MFC 1

注意如果你想要通過CWinThread派生新線程,一定要設置THR_USE_AFX。在預設情況下,所有的ACE項目都使用DLL版本的MSVC運行時庫。盡管如此,你仍然可以選擇使用static(LIB)版本的ACE庫。如果你想要將MFC作為靜態庫鏈接進ACE,你可以在config.h文件中定義ACE_USES_STATIC_MFC。但如果你想要靜態鏈接所有的東西(包括MSVC運行時庫),你就需要自己修改ACE的項目文件。

8. ACE的靜態版本是通過定義ACE_AS_STATIC_LIBS來編譯的。在鏈接靜態ACE庫的應用項目中也應該使用這個宏。
你也可以在config.h文件中增加

#define ACE_NO_INLINE

來取消函數內聯並減小靜態庫(和你的可執行程序)的大小。

9. ACE DLL和LIB的命名方案:

"Library/DLL名" + (是否為靜態庫 ? "s" : "") + (是否啟用了Debugging ? "d" : "") + {".dll"|".lib"}

10. 配置完畢後編譯即可。選擇dll版本,編譯生成的dll文件在ACE_ROOT\bin中,相應的lib文件在ACE_ROOT\ace中。

ACE測試

各測試程序在ACE_ROOT\tests中。在其中也有一個工作空間文件可用來編譯所有的測試程序(tests.dsw)。
一旦你編譯了所有測試程序(可使用批編譯),你可以運行tests目錄中的perl腳本run_test.pl或批處理文件run_tests.bat來進行所有測試。

TAO的編譯與安裝

確定VC的CL.EXE在你的訪問路徑上。設置ACE_ROOT或TAO_ROOT環境變數。例如:

set ACE_ROOT=C:\ACE_wrappers

TAO最好放置在ACE_wrappers(這也是預設情況)。

1.確定ACE已經編譯和安裝。

2.確定ACE_wrappers\bin已在「Tools|Options」中的「Executable Directories」中列出。如果在MSVC下使用TAO_IDL編譯器就需要進行此設置。

3.載入tao\TAO.dsw,並編譯TAO庫。

4.要編譯Cubit測試,載入performance-tests\Cubit\TAO\IDL_Cubit\IDL_Cubit.dsw,並編譯客戶和伺服器。

TAOACE.dsw

TAOACE.dsw是一個Visual C++ 5.0/6.0工作空間文件,它載入的項目包括ACE、TAO、TAO_IDL(編譯器)、gperf、orb服務庫,以及一些單獨的可執行程序(比如Naming Service,等等)。它可以用於編譯所有的用於編譯/運行TAO應用的文件。

三、我選擇編譯的是dll版本(Release),並在ACE的config.h文件中定義了「#define ACE_HAS_STANDARD_CPP_LIBRARY 1」。編譯後我所得到的ace.dll的大小是1.13MB,相應的ace.lib的大小是1.77MB;TAO.dll的大小是1.47MB,相應的TAO.lib的大小是2.74MB。所有文件約有 MB,包括源程序、編譯生成的中間文件,等等,但有些例子及服務我沒有編譯。

祝學有所成!

馬維達

-------------------------------------
將ACE與VC6集成在一起

一.打開 Tools>Options>Directories
加入以下內容:
Executable File:
C:\ACE_wrappers\bin

Include File:
C:\ACE_wrappers\
C:\ACE_wrappers\TAO
C:\ACE_wrappers\TAO\orbsvcs

Library Files:
C:\ACE_wrappers\ace
C:\ACE_wrappers\TAO\tao
C:\ACE_wrappers\TAO\orbsvcs\orbsvcs

Source Files:
C:\ACE_wrappers\ace
C:\ACE_wrappers\TAO\tao
C:\ACE_wrappers\TAO\orbsvcs\orbsvcs

二.加入 C:\ACE_wrappers\bin 到系統環境變數 path中

三.設置系統變數
ACE_ROOT=C:\ACE_wrappers
TAO_ROOT=C:\ACE_wrappers\TAO

C. 如何配置使用聯合編譯器incredibuild

1.make文件夾裡面的Gsm2.mak修改make工具的編譯項為IncredBuild增加運行參數
#@echo tools\make.exe -fmake\comp.mak -r -R COMPONENT=$* ... $(strip $(COMPLOGDIR))\$*.log
@if /I %OS% EQU WINDOWS_NT \
(if /I $(BM_NEW) EQU TRUE \
(XGConsole /command="tools\make.exe -fmake\comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))\$*.log 2>&1" /NOLOGO /profile="tools\XGConsole.xml") \
else \
(XGConsole /command="tools\make.exe -fmake\comp.mak -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))\$*.log 2>&1" /NOLOGO /profile="tools\XGConsole.xml") \
) \
else \
(if /I $(BM_NEW) EQU TRUE \
(tools\make.exe -fmake\comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))\$*.log) \
else \
(tools\make.exe -fmake\comp.mak -r -R $(strip $(CMD_ARGU)) COMPONENT=$* > $(strip $(COMPLOGDIR))\$*.log) \
)
@type $(strip $(COMPLOGDIR))\$*.log >> $(LOG)
@perl .\tools\chk_lib_err_warn.pl $(strip $(COMPLOGDIR))\$*.log

2.tools工具夾裡面加入 XGConsole.xml
內容為
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Profile FormatVersion="1">
<Tools>
<Tool Filename="perl" AllowRemote="true" />
<Tool Filename="make" AllowIntercept="true" />
<Tool Filename="tcc" AllowRemote="true" />
<Tool Filename="tcpp" AllowRemote="true" />
<Tool Filename="armcc" AllowRemote="true" />
<Tool Filename="armcpp" AllowRemote="true" />
<Tool Filename="strcmpex" AllowRemote="true" />
<Tool Filename="warp" AllowRemote="true" />
<Tool Filename="armar" AllowRemote="false" />
<Tool Filename="formelf" AllowRemote="false" />
</Tools>
</Profile>

3.tools工具夾裡面的make2.pl修改以下幾行
if (($action eq "update") || ($action eq "remake") || ($action eq "new") || ($action eq "bm_new") ||
($action eq "c,r") || ($action eq "c,u")) {
if ($ENV{"NUMBER_OF_PROCESSORS"} > 1) {
if ($fullOpts eq "") {
$fullOpts = "CMD_ARGU=-j$ENV{\"NUMBER_OF_PROCESSORS\"}";
} else {
$fullOpts .= ",-j$ENV{\"NUMBER_OF_PROCESSORS\"}";
}
}
}
改為
if (($action eq "update") || ($action eq "remake") || ($action eq "new") || ($action eq "bm_new") ||
($action eq "c,r") || ($action eq "c,u")) {
if ($ENV{"NUMBER_OF_PROCESSORS"} >= 1) {
if ($fullOpts eq "") {
$fullOpts = "CMD_ARGU=-j$ENV{\"NUMBER_OF_PROCESSORS\"}"."0";
} else {
$fullOpts .= ",-j$ENV{\"NUMBER_OF_PROCESSORS\"}"."0";
}
}
}
$ENV{"NUMBER_OF_PROCESSORS"} = 10; //修改為你想要的進程數
4.把tools裡面的make.exe換成多任務的文件。

D. kernel編譯時間是什麼意思

內核的編譯系統主要由kconfig,makefile和一系列腳本共同構成。其中kconfig主要用於配置內核的各項功能,它的結果決定了各個部分最終是被編譯成模塊,編譯進內核還是不編譯。在內核頂層makefile的help可以看到有一個專門用於配置內核的命令序列,後續我們會詳細介紹該部分內容。
    頂層makefile是整個內核編譯系統的入口,所有make相關的命令都由它發起,並調用定義在其中或定義在其它文件中的相應命令序列完成。它還定義了很多全局的參數,環境變數,目標和依賴等。
    除了頂層makefile之外,還有幾個定義在scripts目錄中的重要文件,它們包括kbuild.include,makefile.lib和makefile.build。其中kbuild.include中主要定義了一些通用的變數和命令,如filechk,try-run,build,arg-check,if_changed等。makefile.lib中主要定義了編譯相關的flag和命令,如c_flags,a_flags,cmd_ld,cmd_obj,cmd_uimage等。makefile.build文件是大部分目標最終調用的makefile,它會實際完成對目錄的遞歸調用和對源文件的編譯工作。
    由於頂層makefile文件比較長,若從頭閱讀很容易陷入某些細節而打斷思路的連貫性。因此,我們通過對內核目標編譯的執行流程進行分析,看看linux到底是如何編譯出來的。讓我們先了解下內核makefile支持哪些功能,在linux根目錄下執行make help,會輸出以下內容(由於列印較長,這里採用分屏顯示):

                                          圖1.1

                                          圖片1.2

                                          圖片1.3
它支持的目標大致包含以下幾部分:
(1)清理相關的目標
(2)配置相關的目標
(3)通用目標
(4)靜態分析目標
(5)kernel自測目標
(6)kernel打包相關的目標
(7)文本相關的目標
(8)架構相關的目標
(9)一些通用的選項
    顯然,我們最關心的是linux內核的生成過程,故我們採用以下順序來組織本文,在涉及到架構相關的內容時,本文都以arm的aarch64為例。
2.配置相關目標
  make menuconfig的執行過程分析
3.通用目標
  (1)make vmlinux的執行過程分析
  (2)make moles的執行過程分析
  (3)其它通用目標的執行過程
4.清理目標的執行過程分析
5.通用命令行選項的用法介紹
  (1)V選項介紹
  (2)O選項介紹
  (3)C選項介紹
6.makefile.build文件的分析
京東爆款好物每滿300減40,千萬別錯過~
京東
廣告

Kernel 編譯、安裝內核詳細過程
5下載·0評論
2011年6月29日
kernel編譯過程
1976閱讀·0評論·0點贊
2019年6月9日
什麼是編譯
7995閱讀·0評論·1點贊
2020年8月13日
Linux Kernel編譯
2034閱讀·0評論·1點贊
2018年8月9日
android 內核編譯時間戳,Android 啟動性能優化 - kernel篇
223閱讀·0評論·1點贊
2021年6月3日
Android 系統編譯之內核編譯
3.1W閱讀·27評論·18點贊
2018年9月12日
還在等什麼?京東爆款商品每滿300減40,立即搶購!

京東
廣告
kernel編譯步驟解析
2871閱讀·0評論·0點贊
2022年4月14日
Linux Kernel 編譯流程 (一)
1265閱讀·0評論·0點贊
2021年1月18日
[內核源碼編譯]編譯內核-kernel編譯問題集錦
343閱讀·1評論·1點贊
2022年8月27日
【ESWIN實習】一、熟悉kernel編譯流程
579閱讀·0評論·0點贊
2021年2月24日
編譯kernel
824閱讀·0評論·0點贊
2015年7月21日
Android每次編譯kernel時間都會改變(不讓它改變)
2154閱讀·0評論·1點贊
2017年10月13日
"Kernel version" 中編譯時間的前世今生
1598閱讀·0評論·3點贊
2016年4月15日
[kernel]linux內核基礎: 版本、源碼、編譯與調試
9419閱讀·0評論·1點贊
2022年3月28日
kernel編譯
476閱讀·1評論·1點贊
2019年10月20日
linux 模塊編譯過程,首次編譯Kernel模塊的經歷
656閱讀·0評論·0點贊
2021年5月11日
系統移植-(三)kernel內核源碼的配置和編譯過程
919閱讀·1評論·2點贊
2020年4月13日
樹莓派4B內核驅動開發(二)本地編譯內核
321閱讀·0評論·0點贊
2021年2月24日
編譯生成的kernel說明
1558閱讀·0評論·0點贊
2010年1月20日
Kernel 編譯配置機制
5883閱讀·1評論·1點贊
2014年5月7日
去首頁
看看更多熱門內容

E. 如何編譯配置Apache中的Configure

./Configure文件是一個經常被遺忘的Apache工具。本文介紹如何用./Configure進行編譯配置,避免每次編譯Apache時進行重復的操作。文章比較了常規方法與使用./Configure這兩者各自的優缺點以及如何手工編輯配製文件進行編譯配置。 一、優缺點比較 我們知道,配製Apache編譯選項使用的是configure。但除此之外,我們還可以使用Configure。注意兩者的差別:常用的那個配製工具是小寫c開頭的「configure」,這里要討論的「Configure」以大寫的C開頭。 解開Apache源代碼之後,configure腳本位於頂級目錄下面。一般我們按照如下步驟使用它: tar -zvxf apache_1.3.14.tar.gz cd apache_1.3.14 ./configure --prefix=/usr/local/apache make make install Configure是位於src子目錄下的腳本。它的參數不是通過命令行指定,而是在一個名為Configuration的配置文件中指定。Apache提供一個默認的配置模板文件Configuration.tmpl,其中包含了通用的默認配置值。 用Configure進行默認安裝的過程如下: tar -zvxf apache_1.3.14.tar.gz cd apache_1.3.14/src cp -f Configuration.tmpl Configuration vi Configuration ... 如必要,修改默認配置值 ./Configure make make install 缺點 用Configure進行配製有幾個明顯的缺點,至少對初學者來說是這樣的。 首先,這種配製方法並不廣為人知。只要是對開放源代碼軟體有所了解的人,解開源代碼並進入它的目錄之後,或許會對它的configure腳本感到熟悉,但往往不會進入src子目錄去尋找其他什麼東西。 即使知道可以用Configure進行編譯配製,Configuration文件本身也可能成為小小的障礙。這是因為,雖然Configuration文件內部包含的說明相當完善,每一行都有豐富的註解說明其作用,但這個文件實在過於龐大,包含了許多大多數人永遠不想要加以定製的選項。 最後,雖然有關這兩種配製方法差別的資料略顯缺乏,但總地看來初學者最好使用configure,而Configure只適合於經驗豐富的用戶使用。雖然這並不能算是一個真正的缺點,但它無疑使許多用戶駐足而不敢嘗試。 優點 使用Configure進行編譯配製最大的優點在於,它方便了我們將特定的配置信息保存下來以後再用,無需記住冗長的configure命令行選項。 例如,本人上次編譯Apache時使用的configure命令如下: ./configure --prefix=/usr/local/apache --enable-mole=most --enable-shared=max --enable-mole=auth_dbm --enable-mole=auth_mysql 這還應該算是一次比較簡單的編譯。問題在於,即使是輸入上面這行命令,我也要查看各種參數的語法並努力記住各個模塊的名字。對於大多數人來說這並不是一個很重要的問題,但由於我經常要重新構造Apache,這個問題就顯得比較突出了。 configure也有它的好處,它實際上會在src目錄下生成一個配製文件,我們可以保存這個文件供以後參考。這個文件就是src/Configuration.apaci。 如果我們為測試目的構造Apache,完成後又要在正式運行的系統上以完全相同的方式構造Apache,configure的這個功能將是非常有用的。此時,我們只需要復制一份Configuration.apaci文件,將它拷貝到正式運行的伺服器上,然後用這個文件編譯Apache伺服器即可。 應當說明的是,雖然默認情況下配製選項由Configuration文件提供,但我們可以用-file參數指定另外的文件: ./Configure -file Configuration.saved_prefs 二、手工編輯配製文件 以前,指定編譯選項的唯一方法是手工編輯Configuration文件。當然,那時候我們還要步行上學,跋山涉水。這一切現在都已經過去。 不管怎樣,如果你准備直接使用Configuration文件,你就得仔細地了解一下它到底由什麼內容構成。Configuration文件中的大多數選項都是無需定製的,不過了解一下它們的用處是有好處的。 Configuration文件的前面是關於本文件的一個簡短說明。下面摘錄了這部分內容並給出其譯文: # There are 5 types of lines here: 這里共有5種類型的代碼行: # &single;#&single; comments, distinguished by having a &single;#&single; as the first non-blank character 「#」注釋,以第一個非空字元為「#」區別 # # Makefile options, such as CC=gcc, etc... Make文件選項,例如 CC=gcc,等等... # # Rules, distinguished by having "Rule" at the front. These are used to # control Configure&single;s behavior as far as how to create Makefile. 規則,以前面的「Rule」區別,用於控制Configure的行為以至 如何創建Make文件 # # Mole selection lines, distinguished by having &single;AddMole&single; at the front. # These list the configured moles, in priority order (highest priority # last). They&single;re down at the bottom. 模塊選擇行,以前面的「AddMole」區別。這些行以優先順序為序列出 了已經配製的模塊(高優先順序的在後面)。模塊選擇在文件最後進行。 # # Optional mole selection lines, distinguished by having `%Mole&single; # at the front. These specify a mole that is to be compiled in (but # not enabled). The AddMole directive can be used to enable such a # mole. By default no such moles are defined. 可選模塊選擇行,以前面的「%Mole」區別。這些行指定了必須 編譯的模塊(但不啟用)。AddMole指令可以啟用這種模塊。默 認不定義這種模塊。 大多數用戶只需修改模塊選擇行,其他內容只適合於深入了解其含義的用戶進行修改。在文件的最後我們可以發現許多如下形式的行: AddMole moles/standard/mod_cgi.o 它表示本次編譯Apache應啟用指定的模塊(這里是mod_cgi模塊)。我們可以用注釋掉相應行的方法來刪除特定的模塊;反之,如果取消已注釋行的注釋將啟用該模塊。 我們可以通過SharedMole指令(而不是AddMole)將模塊編譯成DSO(共享對象,shared object): SharedMole moles/standard/mod_vhost_alias.so 注意在編譯DSO時必須啟用mod_so模塊。 用configure生成Configuration.apaci文件,然後檢查其改動之處是一種很好的學習方法。 一旦在Configuration文件中完成了所有必須的改動,只需運行./Configure即可開始編譯過程。 三、使用哪種方法好? 顯然,使用configure和使用Configure都有著各自強硬的支持者,但可以相信每一種觀點都有其派別和歷史的原因。 我們建議兩種方法都用。用configure生成Configuration文件,閱讀這些文件了解其作用,然後保存其中的部分文件供以後在Configure命令中使用。 如果你打算只進行默認安裝,而且從來沒有想到過要改變任何一個選項,那麼使用哪一種方法進行配製就無關緊要了

閱讀全文

與編譯配置英語相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163