當前位置:首頁 » 編程軟體 » 源碼編譯

源碼編譯

發布時間: 2022-01-21 01:13:10

Ⅰ 如何自己編譯源代碼

我們使用編譯器將自己的源代碼轉換成目標代碼, 使用鏈接器將我們的目標代碼鏈接成一個可執行程序。另外, 我們使用一些程序在計算機中輸入源代碼文本並且編輯它。這些是最初的和最重要的工具, 它們構成程序員的工具集合或「程序開發環境」。 如果你使用的是命令行窗口, 就像很多專業程序員所做的那樣, 你將不得不自己來編寫編譯和鏈接命令。如果你使用IDE(「互動式開發環境」或「集成式開發環境」), 就像很多程序員所做的那樣, 簡單地點擊正確按鈕就可以完成這個工作。附錄C介紹了如何在你的C++實現中編譯和鏈接。 IDE通常包括一個具有有用特性的編輯器, 例如用不同顏色的代碼來區分你的源代碼中的注釋、 關鍵字和其他部分, 以及其他幫助你來調試代碼、 編譯和運行代碼的功能。調試是發現程序中的錯誤和排除錯誤的活動, 你在前進的道路上會聽到很多有關它的內容。 我們使用微軟的Visual C++作?喑炭 ⒒肪呈道 H綣 頤羌虻サ廝怠氨嘁肫鰲被蚴恰癐DE」的某些部分, 那就是所指Visual C++系統。但是, 你可以使用一些提供最新的、 符合標準的C++實現的系統。我們所說的大多數內容(經過微小的修改)對所有的C++實現都將是正確的, 並且其代碼可以在任何地方運行。在工作中, 我們使用幾種不同的實現。

Ⅱ 如何編譯c語言源代碼

下載一個VC2005軟體,把代碼復制到裡面,設置好C運行環境,點擊編譯,OK,然後點擊那個感嘆號,直接鏈接運行,就OK了。

Ⅲ 怎麼從源代碼編譯成exe程序

1. 打開c語言編輯工具(vc6.0),寫入所編程序源代碼。

2. 點擊 組建-編譯-執行。

3. 執行完程序,點擊回車。

4. 點擊 文件另存為 把文件存到你能夠找到的文件夾中,比如桌面。

5. 打開你剛保存文件的文件夾,內含有一個 Bebug 的文件夾。注意:如果沒有,請再次執行第二步。

6. 打開 Bebug 的文件夾,有一個以.exe為後綴名的文件,就是所需要的可執行文件,將其拷貝出,就可以單獨執行,也就是一個小軟體生成了。

源碼怎麼編譯

使用編譯器如VC++6.0,VC++2008

Ⅳ 怎樣從源碼編譯rom

本帖最後由 pigjohn 於 2014-2-10 20:24 編輯

一、你需要:
1.linux系統環境
教程使用ubuntu 12.04(LTS)
硬碟安裝或虛擬機安裝應該都ok。
2.電腦配置不要太差
二、搭建編譯環境:
1.java安裝配置
1) 刪除舊版本java
ctrl+alt+t 打開終端。
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*

sudo apt-get purge sun-java
復制代碼
2) 安裝java 1.6
添加軟體源,打開終端輸入
sudo add-apt-repository ppa:webupd8team/java
復制代碼
下載安裝,打開終端輸入
sudo apt-get update && sudo apt-get install oracle-java6-installer
復制代碼
跟隨屏幕提示,你需要接受使用條款。
安裝完成後,終端輸入java -version,你會看到java版本信息。類似
java version 「1.6.0_37″

Java(TM) SE Runtime Environment (build 1.6.0_37-b06)

Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
復制代碼
2.安裝依賴軟體
sudo apt-get install git-core gnupg flex bison gperf build-essential \

zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev \

ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \

lib32z-dev libgl1-mesa-dev g++-multilib mingw32 \

tofrodos python-markdown libxml2-utils xsltproc readline-common \

libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev \

lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 \

libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev \

libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.6-dev
復制代碼
等待安裝配置完成
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
復制代碼
三、源碼下載
1.repo腳本下載
$ mkdir ~/bin

$ PATH=~/bin:$PATH

$ curl [url]https://dl-ssl.google.com/dl/googlesource/git-repo/repo[/url] > ~/bin/repo

$ chmod a+x ~/bin/repo
復制代碼
2.初始化repo同步
mkdir ~/cm11

cd ~/cm11

repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0

復制代碼
你需要按提示輸入用戶名和郵箱。
3.9003device源碼
cd ~/cm11/.repo

mkdir local_manifests && cd local_manifests

gedit roomservice.xml
復制代碼
粘貼以下內容
<?xml version="1.0" encoding="UTF-8"?>

<manifest>

<project name="dhiru1602/android_device_samsung_galaxysl" path="device/samsung/galaxysl" remote="github" revision="cm-11.0" />

<project name="dhiru1602/android_vendor_samsung_galaxysl" path="vendor/samsung/galaxysl" remote="github" revision="cm-11.0" />

<project name="dhiru1602/android_kernel_samsung_latona" path="kernel/samsung/latona" remote="github" revision="cm-11.0" />

<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-11.0"/>

</manifest>
復制代碼
保存。
4.同步源碼
cd ~/cm11

repo sync -j8
復制代碼
源碼有好幾個G,同步時間長短取決於你的網路速度。
四、編譯
1.編譯之前同步最新源碼
repo sync
復制代碼
2.初始化環境
. build/envsetup.sh
復制代碼
3.編譯
brunch galaxysl
復制代碼
接著喝杯茶,編譯時間長短取決於你的電腦配置。
不出意外,你會最終得到~/cm11/out/target/proct/galaxysl/cm-11-XXXXX-UNOFFICIAL-galaxysl.zip
五、刷機測試

以上就是編譯cm11的過程。

對於其他rom,類似。
mokee:
mkdir ~/mokee && cd ~/mokee

repo init -u https://github.com/MoKee/android.git -b kk_mkt

Ⅵ linux中源碼編譯需要哪些軟體

一、程序的組成部分
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,指向我們的文檔目錄

Ⅶ 如何編譯Linux操作系統的源代碼

首先uname
-r看一下你當前的linux內核版本
1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname
-r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核
make
menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make
bzImage、make
moles、make
moles
4、安裝,make
install
5、.創建系統啟動映像,到
/boot
目錄下,執行
mkinitramfs
-o
initrd.img-2.6.36
2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於
/boot/grub/grub.cfg
文件的設置,找到if
[
"${linux_gfx_mode}"
!=
"text"
]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry
'Ubuntu,
with
Linux
3.2.0-35-generic'
--class
ubuntu
--class
gnu-linux
--class
gnu
--class
os
{
recordfail
gfxmode
$linux_gfx_mode
insmod
gzio
insmod
part_msdos
insmod
ext2
set
root='(hd0,msdos1)'
search
--no-floppy
--fs-uuid
--set=root
9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic
root=UUID=9961c170-2566-41ac-8155-18f231c1bea5
ro
quiet
splash
$vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改
set
default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make
menuconfig這一步,改好後就萬事ok了。
最後再用uname
-r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?

Ⅷ 怎麼把源代碼編譯成可執行程序

可以引出為」可執行jar「(項目必須有mian方法),然後雙擊運行即可。 第一步:在項目上右擊,選擇」Export「,之後找到」Runnable Jar file「。 第二步:在」Launch「下拉選中選擇」main「方法入口類,然後選擇」Browse「後,輸入」jar「名稱,點擊」Finsh「即...

Ⅸ 如何將源代碼編譯成jar包

先打開命令提示符(win2000或在運行框里執行cmd命令,win98為DOS提示符),輸入jar Chelp,然後回車(如果你盤上已經有了jdk1.1或以上版本),看到什麼:

用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目錄] 文件名 ...

選項:

-c 創建新的存檔

-t 列出存檔內容的列表

-x 展開存檔中的命名的(或所有的〕文件

-u 更新已存在的存檔

-v 生成詳細輸出到標准輸出上

-f 指定存檔文件名

-m 包含來自標明文件的標明信息

-0 只存儲方式;未用zip壓縮格式

-M 不產生所有項的清單(manifest〕文件

-i 為指定的jar文件產生索引信息

-C 改變到指定的目錄,並且包含下列文件:

如果一個文件名是一個目錄,它將被遞歸處理。

清單(manifest〕文件名和存檔文件名都需要被指定,按'm' 和 'f'標志指定的相同順序。

首先在資源文件當前目錄寫一個清單文件example.mf

mf文件應是以下格式:
第一行為:
Main-Class: Hello
然後最少兩個空行。
其中的Hello.class是你寫的程序中main函數所在的那個類名。
有兩點必須記得:
1,在第一行中"Main-class:"之後一定要有一個空格。後有最少兩個空行
2,類名不能寫成Hello.class的格式,要省了後輟。
我試過了,你錯的原因是"Main-class:"之後沒有一個空格。
在CLASS目錄下運行:jar cfm example.jar example.mf A.class B.class

示例1:將兩個class文件存檔到一個名為 'classes.jar' 的存檔文件中:


jar cvf classes.jar Foo.class Bar.class

示例2:用一個存在的清單(manifest)文件 'mymanifest' 將 foo/ 目錄下的所有文件存檔到一個名為 'classes.jar' 的存檔文件中:

jar cvfm classes.jar mymanifest -C foo/ .

來個小例子試試看:

我們只有一個HelloWorld,如下:

public class HelloWorld{
public static void main(String[ ] args){
System.out.println("Hi, Hello World!");
}
}
將這個java文件存到C盤跟目錄下,ok,接下來,

在先前打開的命令提示符下(跳轉到C盤提示符下),我們輸入javac HelloWorld.java,然後繼續輸入:jar cvf hello.jar HelloWorld.class,回車後去你的C盤看看,多了什麼,沒錯 hello.jar 。

基本的步驟我們現在都知道了,你可以自己去嘗試一下隨著jar後面的參數的不同,結果有什麼變化。
緊接著我們看看如何運行我們的jar包。

在進入正題之前,你要先打開我們剛剛做好的jar包看看,多了什麼呢,META-INF目錄?再看看裡面是什麼,還有一個MANIFEST.MF文件是不是?用文本編輯器(我這里是UltraEdit)打開它看看:

Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)

就是這樣。這里我們對它進行修改,加一句:Main-Class: HelloWorld (在第三行)。這個就是我們之前寫的那個類,也就是我們的入口類。也即,

Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
Main-Class: HelloWorld

接下來,我們在命令提示符里執行:

jar umf MANIFEST.MF app.jar (應該是hello.jar吧)

這樣我們使用了我們自己的MANIFEST.MF文件對原來默認的進行了更新。你不妨可以再進去看看是不是添上了Main-
Class: HelloWorld這一句。 (是嗎,我怎麼沒試出來,提示
java.io.FileNotFoundException:MANIFEST.MF(系統找不到指定的文件)怎麼回事?
)

Ok,這個最後的一步了,來驗證我們做的一切,在命令提示符中輸入:

java -jar hello.jar(執行)

出現了什麼, Hi, Hello World!

我們再來看看jar文件在tomcat中發布,注意:在tomcat中我們就不能再用jar這種格式,而改war格式,它是專門用於web應用的,其實整個過程下來基本上和jar是類似的:

先准備我們要打包的資源。

找到存放tomcat的webapps目錄,進到其中,新建一個文件夾,這里命名為hello,再進去新建WEB-INF文件夾,再進去新
建 classes文件夾,此時我們也將我們唯一的servlet,HelloWorld.java放到這里,在與classes目錄同級下建立一文
件 web.xml。Ok,目前我們初步建立了一個簡單的web應用。

這是HelloWorld.java:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("");
out.println("");
out.println("");
out.println("Hello, World!");
out.println("");
}
}//end here!

對它編譯。下面是web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.
//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>

在命令提示符下進到先前創制的hello目錄下,執行 jar cvf hello.war * ,我們便得到hello.war。將它拷貝至webapps目錄下,ok,來看最後一步,打開tomcat的目錄conf中的server.xml,加入:

<Context path="/hello" docBase="hello.war" debug="0" reloadable="true"/>
大功告成!運行它,啟動tomcat,後在瀏覽器中輸入http://localhost:8080/hello/HelloWorld,有了嗎?

最後,如果你想用ant來完成以上的打包活動,下面就告訴你:
對於jar來說。在build.xml中,

<target name="jar">
<jar destfile="${app_home}/hello.jar">
<fileset dir="${dest}" includes="**"/>
<!--fileset dir="${dest}" includes="**/action.properties"/-->
</jar>
</target>
對於war,

<war warfile="hello.war" webxml="./WEB-INF/web.xml">
<fileset dir="html"/>
<lib dir="lib/">
<exclude name="oracle*.jar"/>
</lib>
<classes dir="build/servlets">
<include name="**/*.class"/>
</classes>
</war>
好了,就這么多,希望對你有點幫助。:)

補充:

jar基本操作:

1. 創建jar文件
jar cf jar-file input-file(s)
c---want to Create a JAR file.
f---want the output to go to a file rather than to stdout.
eg: 1)jar cf myjar.jar query_maintain_insert.htm
2)jar cvf myjar.jar query_maintain_insert.htm
v---Proces verbose(詳細的) output.

3)jar cvf myjar.jar query_maintain_insert.htm mydirectory
4)jar cv0f myjar.jar query_maintain_insert.htm mydirectory
0---don't want the JAR file to be compressed.
5)jar cmf MANIFEST.MF myjar.jar yahh.txt
m---Used to include manifest information from an existing manifest file.
6)jar cMf MANIFEST.MF myjar.jar yahh.txt
M---the default manifest file should not be proced.
7)jar cvf myjar.jar *
*---create all contents in current directory.

2. 察看jar文件
jar tf jar-file
t---want to view the Table of contents of the JAR file.
eg: 1)jar vft yahh.jar
v---Proces verbose(詳細的) output.

3. 提取jar文件
jar xf jar-file [archived-file(s)]
x---want to extract files from the JAR archive.
eg: 1)jar xf yahh.jar yahh.txt(僅提取文件yahh.txt)

2)jar xf yahh.jar alex/yahhalex.txt(僅提取目錄alex下的文件yahhalex.txt)

3)jar xf yahh.jar(提取該jar包中的所有文件或目錄)

4. 修改Manifest文件
jar cmf manifest-addition jar-file input-file(s)
m---Used to include manifest information from an existing manifest file.

5. 更新jar文件
jar uf jar-file input-file(s)
u---want to update an existing JAR file

Ⅹ 如何編譯linux源代碼

首先uname -r看一下你當前的linux內核版本

1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make moles、make moles
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。

重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好後就萬事ok了。

最後再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?

熱點內容
linux更改用戶 發布:2024-12-22 09:35:19 瀏覽:505
信息的編程加工 發布:2024-12-22 09:33:48 瀏覽:116
移動辦公專家伺服器地址寫什麼 發布:2024-12-22 09:25:13 瀏覽:147
編程CBA 發布:2024-12-22 09:10:11 瀏覽:288
糖豆上傳視頻 發布:2024-12-22 09:09:24 瀏覽:856
canvas壓縮上傳圖片 發布:2024-12-22 08:53:47 瀏覽:189
加工中心簡單圖案編程 發布:2024-12-22 08:38:12 瀏覽:446
psp和安卓手機比哪個好 發布:2024-12-22 08:37:14 瀏覽:233
沙鷹行動迅雷下載ftp 發布:2024-12-22 08:30:03 瀏覽:384
mysql導入數據從java 發布:2024-12-22 08:20:19 瀏覽:73