源碼編譯工具
一、程序的組成部分
Linux下程序大都是由以下幾部分組成:
二進制文件:也就是可以運行的程序文件
庫文件:就是通常我們見到的lib目錄下的文件
配置文件:這個不必多說,都知道
幫助文檔:通常是我們在Linux下用man命令查看的命令的文檔
二、Linux下程序的存放目錄
Linux程序的存放目錄大致有三個地方:
/etc,
/bin,
/sbin,
/lib
:系統啟動就需要用到的程序,這些目錄不能掛載額外的分區,必須在根文件系統的分區上
/usr/bin,/usr/sbin,/usr/lib:操作系統核心功能,可以單獨分區
/usr/local/bin,/usr/local/sbin,/usr/local/lib,/usr/local/etc,/usr/local/man:這個用於安裝第三方程序,分別對應了二進制文件、庫文件、配置文件、幫助文檔的目錄
通常來說我們安裝程序就安裝在
/usr/local目錄下
三、編譯安裝源程序
1、使用如下命令查看當前是否安裝了gcc編譯器,沒有可以先用yum安裝gcc
gcc
--version
#查看是否安裝gcc
2、解壓源碼包,例如:
tar
-xvf
nginx-1.7.7.tar.gz
#解壓源碼包
3、進入解壓好的源碼包:
cd
nginx-1.7.7
#進入源碼包
4、執行configure文件,此文件有兩個功能:1、讓用戶選定編譯特性;2、檢查編譯環境。configure執行後將生成MakeFile文件。例如:
./configure
--prefix=/usr/local/nginx
--conf-path=/etc/nginx/nginx.conf
其中我們通過--prefix制定了安裝路徑,通過--conf-path制定了配置文件的具體位置。注意:不是所有的程序的configure參數都是一樣的
可以使用
./configure
--help查看詳細參數說明。如果該程序所依賴的庫在當前系統中沒有安裝,則會導致configure最後報錯,遇到這種情況就需要你先安裝依賴庫。
5、執行make命令,編譯程序
make
6、編譯成功後就可以安裝了,執行如下命令
make
install
到此程序就算安裝完成了,但是不要忘了還有後續的配置哦
四、配置程序
1、修改PATH環境變數,以能夠識別此程序的二進制文件路徑;
修改/etc/profile文件,在文件中
添加
export
PATH=$PATH:/path/to/somewhere#記得是可執行文件所在的目錄,路徑中不要包含可執行文件。
然後執行
:
source
/etc/profile
#是我們的修改生效
2、默認情況下,系統搜索庫文件的路徑/lib,
/usr/lib;
要增添額外搜尋路徑(注意:有的程序不提供庫文件,那就不需要此設置了)
在/etc/ld.so.conf.d/中創建以.conf為後綴名的文件,而後把要增添的路徑直接寫至此文件中;然後執行如下命令使其生效
ldconfig
3、如果程序提供了庫文件,也會相應的提供頭文件,一般在安裝目錄的include目錄下,系統默認掃描頭文件的路徑是:/usr/include。我們可以在/usr/include下用鏈接連接到我們安裝程序的頭文件。
ln
-s
/usr/local/nginx/include
/usr/include/yourname
4、可能程序還提供了幫助文檔,一般是安裝目錄下的man目錄,為了我們可以使用man命令查看我們程序的幫助文檔,我們需要:在/etc/man.config中添加一條MANPATH,指向我們的文檔目錄
❷ 如何編譯安裝源碼包軟體
怎樣安裝以源碼包打包的軟體;
1、源碼包的打包格式;
源代碼一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;
[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz
至於file.src.rpm 的用法,請參見:《file.src.rpm 使用方法的簡介》
2、如何編譯安裝源碼包;(大多數)
1)解開軟體包查看幫助文檔;
我們解開一個包後,進入解壓包,一般都能發現README(或reame)和INSTALL( 或install);或doc(或DOC)目錄;看名字就知道個差不多;
比如我們下載一個比較新的fcitx 的軟體包,比如是 fcitx-3.2-050827.tar.bz2
我們在解開這個軟體包會會發現如下的文件;
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ls
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools
所以我們就可以看fcitx的INSTALL 和doc目錄的安裝文檔了;裡面都告訴我們如何安裝;
有時安裝文檔也會在開發者的主頁上有詳細的說明,及常見問題的處理等;比如 LumaQQ
2)編譯安裝軟體的條件;
首 先我們在Linux系統中至少得把開發工具安裝上,比如 gcc ;perl;python;glibc;gtk;make ;automake 等開發工具或基礎包;還要安裝一些相應的開發包,一般是文件名包括dev的,比如kernel-devel;還有一些開發庫,比如以lib開頭的;如果您 在編譯軟體時,有時提示缺少什麼東西之類的,大多少的是這些開發工具和開發庫等;從光碟中找出安裝就是了;有時光碟沒有提供,請用google搜索相應的 軟體包,有時可能也會用到源碼包編譯安裝所依賴的包;
有時本來系統中已經安裝了所依賴的包,但系統提示找不到應該怎麼辦?這時需要我們設置一下PKG_CONFIG_PATH的環境變數就行了;
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig
或
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然後我們再來運行編譯的./configure ;make ;make install ,嘗試著來吧;
以java開發的工具開發的程序,要用到 jre或者jdk ;jdk已經包括jre了,所以如果我們只是要求有一個java程序運行的環境,只需要安裝jre就行了;安裝好jre,配置一下java的環境變數就可以用了。如果是圖形界面的程序,點點滑鼠就OK了;
用perl 開發的程序,是需要perl環境的,所以必須得把perl的包安裝上,python 也同理;
3)編譯安裝軟體的方法;
大多以tar.gz 和tar.bz2打包軟體,大多是通過 ./configure ;make ;make install 來安裝的;有的軟體是直接make;make install ;
我們可以通過./configure --help 來查看配置軟體的功能;大多軟體是提供./configure 配置軟體的功能的;少數的也沒有,如果沒有的就不用./configure ;直接make;make install 就行了;
./configure 比較重要的一個參數是 --prefix ,用--prefix 參數,我們可以指定軟體安裝目錄;當我們不需要這個軟體時,直接刪除軟體的目錄就行了;
比如我們可以指定fcitx 安裝到 /opt/fcitx 目錄中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我們不需要fcitx 時,可以直接刪除 /opt/fcitx 目錄;
所以我們舉這個例子中,fcitx如果定製安裝到 /opt/fcitx目錄中,完整的安裝方法應該是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
調用fcitx ,應該是
[beinan@localhost ~]#/opt/fcitx/bin/fcitx
如果您想要讓fcitx 只要執行fcitx ,就能調用,請配置環境變數,或者在/usr/bin 中做一個fcitx 的鏈接;
[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx
一般的情況下都有說,但大多軟體沒有提供源碼包的卸載方法;我們可以找到軟體的安裝點刪除。主要看你把它安裝在哪了。
設置環境變數PATH,請參見:《在Fedora Core 中,有些常用命令怎麼沒有?解決辦法設置PATH》
所以您的PATH可以設置成這樣的;
export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"
當然這只是舉個例子,fcitx 可以進入桌面自動運行的,請參看 http://www.fcitx.org 官方站上的安裝說明;舉個例子只是讓大家好理解一點;
再舉一個例子,比如我想安裝mlterm ;並指定安裝目錄為/opt/mlterm中; http://mlterm.sourceforge.net
#./configure --prefix=/opt/mlterm
#make
#make install
把源碼包安裝的軟體,都指定安裝在 /opt目錄中,這樣不就知道了軟體安裝在哪裡了;也方便卸載;
❸ 如何自己編譯源代碼
我們使用編譯器將自己的源代碼轉換成目標代碼, 使用鏈接器將我們的目標代碼鏈接成一個可執行程序。另外, 我們使用一些程序在計算機中輸入源代碼文本並且編輯它。這些是最初的和最重要的工具, 它們構成程序員的工具集合或「程序開發環境」。 如果你使用的是命令行窗口, 就像很多專業程序員所做的那樣, 你將不得不自己來編寫編譯和鏈接命令。如果你使用IDE(「互動式開發環境」或「集成式開發環境」), 就像很多程序員所做的那樣, 簡單地點擊正確按鈕就可以完成這個工作。附錄C介紹了如何在你的C++實現中編譯和鏈接。 IDE通常包括一個具有有用特性的編輯器, 例如用不同顏色的代碼來區分你的源代碼中的注釋、 關鍵字和其他部分, 以及其他幫助你來調試代碼、 編譯和運行代碼的功能。調試是發現程序中的錯誤和排除錯誤的活動, 你在前進的道路上會聽到很多有關它的內容。 我們使用微軟的Visual C++作?喑炭 ⒒肪呈道 H綣 頤羌虻サ廝怠氨嘁肫鰲被蚴恰癐DE」的某些部分, 那就是所指Visual C++系統。但是, 你可以使用一些提供最新的、 符合標準的C++實現的系統。我們所說的大多數內容(經過微小的修改)對所有的C++實現都將是正確的, 並且其代碼可以在任何地方運行。在工作中, 我們使用幾種不同的實現。
❹ 網站的源代碼使用什麼編譯器編譯的
#include<stdio.h>
void main()
{
int a,b,c;
a=6; //a=6意思是第四隻猴子走後至少有6個桃子,才能被最後 一隻猴子把桃子分成5份還多一個
for(c=1;c<4;c++) //c為循環計算第4到第1隻猴子走前剩下桃子的最少個數
{b=a*5+1; //計算第四隻猴子走前剩下桃子的個數
a=b;} //把最初桃子的個數賦值給a
printf("%d\n",a); //最後輸出第一隻猴子走前剩下桃子的個數
}
❺ APP源碼要用什麼工具編譯
sourceinsight是個代碼瀏覽工具,它會自動對你的工程源碼進行語法分析,方便你迅速查找對某個特定符號的引用。它本身不帶編譯器調試器,但是你可以指定要用的編譯器,記得sourceinsight里有這個選項。1、->Removemissingfilefromproject選上可以避免因文件找不到而彈出錯誤對話框。把Misc->Usestricterconfirmationdialog選項去掉可以使確認時不輸入"yes"。2、TypingSourceEditing->Indentcommandsaffect#-preprocessorstatements。去掉後(默認值),進行多行縮進時不會影響預處理語句(如#if#endif)。AutoCompletion->Usedetailedcompletionwindow,選上後,聯想時可以出現該函數的詳細信息。見下圖:(簡單)(詳細)AutoCompletion->Insertparemetersforfunctions,去掉後,自動聯想不會把整個參數都輸出到當前行。BrowsinginLists->Matchsyllableswhiletyping(slower)。在symbollist框檢索符號時是否採用音節匹配方式,如對於函數FindNext,輸入find或者next都可以找到該函數。該功能可能導致反應緩慢(視工程和機器配置而定),建議關閉,因為即使在關閉狀態下也可以通過先輸入空格再輸入單詞來動態啟用該功能。注意BrowsinginLists里其實有兩個功能,但一般我們只能看到Matchsyllableswhiletyping這一條,應該是si的菜單設計沒有做好,導致在中文windows下不能顯示全,另一個功能是Matchmemberswhiletyping,用於打開/關閉按成員變數名來檢索類/結構體的功能。3、FilesOpeningFiles->Sharing:Letotherprogramsmodifyfiles,以共享方式打開文件,這個很重要,保證可以在其它編輯中同時編輯該文件。典型的場景就是用ide環境去動態編譯調試,而用si靜態閱讀。Customize'Open'Command,用於設置Ctrl+O打開的頁面,默認選項是,建議保持默認。SavingFiles->,如果發現保存後就不能undo了,請檢查該選項是否選中。。保存時自動去除每行尾部的空格和tab。建議選中。4、Languages自定義其它編程語言的語法解析,這個還是另寫一篇來講吧。ConditionalParsing不要錯過了,這里的Conditions功能實在讓人喜歡。Conditions是什麼意思呢?我們的代碼中一般都會有一些開關宏,通過在Conditions中配置這些宏的默認值,可以讓si把配置為不開啟的宏視為無效代碼,從而不進行符號檢索。如果源代碼中的開關宏太多,還可以使用ConditionParsing中的ScanFiles來自動找出所有開關宏。5、SymbolLookups沒太多特別的。6、Display顯示配置和個人喜好和顯示器的狀態有關,偶用的x60小本,屏幕資源有限,所以在DisplayElements里把ProjectWindow,StatusBar,ToolBar,ClipWindow都關了,基本用快捷鍵可以代替它們。Options->。很多大師都教導我們說一行不要寫太多代碼。在這個指導思想下,我們不需要這個東東。Showexactcaseoffilenames。如果看不慣si把所有的文件名首字母都大寫就勾上這個選項吧。。SourceLink很多時候用於外部命令輸出結果的解析(如Make,lint),這個功能會把解析結果與目標窗口自動tile,很實用。Trimlongpathnameswithellipses。這個建議不要選中。事實上這個主要影響標題欄,但一般來說標題欄上的空間是充裕的,選上之後往往會令我們不知道所編輯文件的具體位置。
❻ 源碼怎麼編譯
使用編譯器如VC++6.0,VC++2008
❼ 編程軟體將源代碼編譯成機器碼是的過程編譯器、鏈接器等等。
這個問題太復雜了
建議兄弟好好學習一下《編譯原理》和《操作系統》吧
❽ ubuntu如何編譯軟體源碼並安裝
這個自然不可能自動識別
需要手動切換到文件所在的目錄
在 console 里使用 cd 命令即可
❾ 手機上怎樣將源碼編譯成apk
這個你就需要工具了!
一般為反編譯工具,這種工具很多,以下給你推薦幾個
APK Editor Pro
ApkCrack
ApkModifie
APK反編譯工具:ApktoolHelper
MT管理器
❿ 有什麼工具可以將java源代碼編譯成windows里的.exe可執行文件呀, 急!!
幾種java轉exe的工具,進行一下比較,談談自己的看法:
1. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS文件編譯成EXE文件。
註:現在已經找不到,不提供了,被人家收購了。
2. 利用微軟的SDK-Java 4.0所提供的jexegen.exe創建EXE文件,這個軟體可以從微軟的網站免費下載,地址如下:
http://www.microsoft.com/java/download/dl_sdk40.htm
jexegen的語法如下:
jexegen /OUT:exe_file_name
/MAIN:main_class_name main_class_file_name.class
[and other classes]
註:沒有試過
3. Visual Cafe提供了一個能夠創建EXE文件的本地編譯器。你需要安裝該光碟上提供的EXE組件。
註:沒有試過
4. 使用InstallAnywhere創建安裝盤。
註:很不錯的工具。
但就是要>8M(帶jre),還有一種是>1M的(不帶jre)。
但是它可以編譯成各種平台上可以使用的exe程序。
5. 使用IBM AlphaWorks提供的一個高性能Java編譯器,該編譯器可以從下面的地址獲得:
http://www.alphaworks.ibm.com/tech/hpc
註:沒有試過
6. JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個測試版本:
http://www.excelsior-usa.com/jet.html
註:不喜歡。
編譯好的程序還是jre的,聽說正版的可以不能jre。安裝好還要編譯,我用了30分鍾。
7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合並了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede已經不復存在了。
註:太煩了,老是出來一個對話框
用過,會出來一個對話框,表示這是jove公司的產品。
8. JToEXE
Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的主頁上找不到了。
公司主頁:http://www.bravozulu.com/
下面這個ftp上曾經有過這個軟體,不知道現在是不是還在:
ftp://race.dlut.e.cn/pub/java/tools/jet
註:很煩了,老是出來一個對話框,但是沒有想到我找到了crack,在google上找到。
現在去掉了那個對話框後,我很喜歡這個工具,雖然它需要jre,但是文件只有100多K,很好哦。
9.Exe4j
很不錯
10.jbuilder
這個工具不用多講了,在jbuilder6.0以前的(包括6.0),是不能生成exe文件的,所以可以用如下的方法實現。這可以人家高手想出來的,我只是幫著宣傳一下。
還有jbuilder7.0開始都可以生成exe文件。
這個是Borland不公開的使用技巧,能夠通過JBuilder來製作exe文件來啟動Java文件。
JBuilder並不支持本地編譯機制。但是有一個隱藏的技巧可以讓你從可執行文件來啟動Java程序,可以出現或者不出現console窗口。想做到這些,需要JBuilder的bin目錄下的這些文件:
JBuilder.exe
JBuilderW.exe (可選)
JBuilder.config
jdk.config
JavaLauncher.dll
「JBuilder.exe」是一個通用的可執行外殼文件,用以啟動Java程序,」JBuilderW.exe「好像是javaw.exe一樣,它把」JBuilder.exe」包裝起來,但是運行時候不顯示那個console的窗口。使用這些文件的關鍵是文件名。「JBuilder.exe」查找一個文件叫」JBuilder.config」的配置文件,裡麵包含了運行Java程序的必須信息。同樣的」JBuilderW.exe」查找」JBuilder.exe」來啟動不帶Console窗口的Java程序。如果把JBuilder.exe重命名為」foo
.exe」,那」foo.exe」將去尋找」foo.config」配置文件,同樣」JBuilderW.exe」被重命名為」fooW.exe」,它會去尋找」foo.exe」文件。
說到這里,聰明的讀者應該猜到怎樣利用JBuilder.exe來啟動應用程序了。只要把JBuilder.exe,JBuilerW.exe,JBuilder.config改名成相應的文件名,在JBuilder.config裡面指定主類和類路徑,就能夠通過執行JBuilder.exe(或者被改名後的exe文件)來啟動Java應用程序了。下面是用本機為例。
Borland JBuilder 5被安裝在E:\jbuilder5\目錄下,在E:\jbuilder5\bin\下建立一個temp目錄,然後把JBuilder.exe,JBuilder.config,JavaLauncher.dll,jdk.config四個文件拷貝到E:\jbuilder5\bin\temp\目錄下,然後在這個目錄下建立一個hello目錄,在這個目錄下生成一個hello.java文件,即E:\jbuilder5\bin\temp\hello\hello.java文件,
//hello.java/
package hello;
public class hello{
public static void main(String s[]){
System.out.println("Hello, Exe file!");
}
}
編譯成class文件,然後打開Jbuilder.config文件,作相應的修改:
在JBuilder.config裡面找到下面兩行
# Start JBuilder using the its main class
mainclass com.borland.jbuilder.JBuilder
修改為
# Start JBuilder using the its main class
mainclass hello.hello
addpath E:/jbuilder5/bin/temp/
addpath命令是把目錄加入類路徑中,這個命令和其它config裡面可以識別的命令可以在JBuilder/bin目錄下的config_readme.txt裡面找到詳細說明。
然後將jdk.config裡面的javapath修改成相對的路徑,例如原來是
javapath ../jdk1.3/bin/java
修改成
javapath ../../jdk1.3/bin/java
最後
將JBuilder.exe,JBuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。
現在執行foo.exe文件
至此,通過修改JBuilder來使用exe文件啟動自己的Java應用程序已經完成了。
但是好玩的地方並不在這個地方,下面的小技巧可能更有趣,將Jar文件打包進入exe文件!
假設利用上面的文件,生成hello.jar包,
jar cvf hello.jar hello\*.class
然後將jar包附加到JBuilder.exe後面去,
/b ..\JBuilder.exe+hello.jar foo.exe
在foo.config(JBuilder.config)文件裡面把前面加入的類路徑去掉,並加入下面的路徑:
addpath E:/jbuilder5/bin/temp/foo.exe
然後執行,foo.exe
看到了么?一個含jar包的exe文件被執行了!
這個過程的大致原理是:exe文件的重要信息都在文件頭部,所以把亂七八糟的東西放exe文件尾部是不要緊的;而jar/zip文件的重要信息是在文件尾部的,這樣它們兩不相干,能夠容易的被執行。
請注意:讀者如果使用這個功能,得自己承擔可能帶來的風險,因為Borland對這個功能不提供官方的支持!