導航:首頁 > 源碼編譯 > 自行編譯怎麼弄

自行編譯怎麼弄

發布時間:2023-09-13 08:09:09

Ⅰ 怎樣使用 MSBuild 自動編譯和發布 NET 網站

很多.NET 程序員開發的時候,每次都需要涉及到各個環境的部署問題,但是手工操作的話又容易出錯,而且非常麻煩,我們今來講解怎樣實現自動編譯和發布 .NET 網站。廢話不多講,先講講我的初步實現方案。

MSBuild 自動編譯和發布 NET 網站步驟:
准備工具:GIT版本控制(gitlab),Jenkins, msbuild
1、安裝git版本控制器,提交代碼。(svn好像也可以), 並生成ssh public key上傳到gitlab的ssh key中(個人配置/SSH KEY)。
2、安裝jenkins開源工具。
3、Jenkins安裝git plugin, Msbuild插件(Manager Jenkins/Manage Plugins)
4、配置Jenkins中的git(Manager Jenkins/Configure System)在git欄中輸入name和Path: git install path\cmd\git.exe
5、添加對應.NET framework version MSBuild
Name: .NET4.0
Path to MSBuild:
%system%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
6、建立.NET項目文件,並添加MSBuild文件
建立一個解決方案nonsuch.sln,裡麵包含一個website: nonesuch.web.
在解決方案根目錄建立一個xml文件,改名為: build.targets

Ⅱ 如何自己實現一個編譯器

1、編譯器有很多種,每一種的使用方式不盡相同。常用編譯器:
Visual C++
GNU C++
Inter C++
Sun C++
clang
2、一般編譯過程:源文件→預處理→編譯→匯編→鏈接→可執行文件
下面以GCC示例:
預處理(Pre-Processing):根據預處理命令(#開頭)修改源文件
# gcc -o hello.i -E hello.c or # cpp -o hello.i hello.c
編譯(Compiling):語法檢查,並將源文件翻譯成匯編文件
# gcc -o hello.s -S hello.i or # cc1 -o hello.s hello.i
匯編(Assembling):將匯編文件轉換為目標文件(二進制)
# gcc -o hello.o -c hello.s or # as -o hello.o hello.s
鏈接(Linking):編址和符號鏈接,生成可執行文件
# gcc -o hello hello.o or # ld -o hello hello.o

Ⅲ 自己可以編譯安卓源碼

用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:

sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」

其中[email protected]為你自己的郵箱.

簡要說明

android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.

源碼下載

由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)

repo工具下載及安裝

通過執行以下命令實現repo工具的下載和安裝

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:

我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:


這里寫圖片描述

執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.

錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.

    結束吧

    到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.

    Ⅳ 如何自己編程序做軟體

    1.程序軟體免費下載

    鏈接:https://pan..com/s/1E6rNlwiYx9wPYqUZuqbnpw

    提取碼:9gsb

    軟體,拼音為Ruǎnjiàn,國標中對軟體的定義為:與計算機系統操作有關的計算機程序、規程、規則,以及可能有的文件、文檔及數據。

    java如何編譯成EXE的文件如何實現自編譯(不要虛擬機還可運行)

    (1) 使用InstallAnywhere等工具,將應用程序和JRE一起打包,製作一個exe的安裝包。
    在安裝過程中,用戶可以選擇使用他機器上的JRE或是這個安裝包內的JRE來運行程序。這是很常見的一種做法,顯得比較專業,而且原來的程序不需要作任何改動,安裝後的程序即在JVM上運行,可以獲得原本的效果。如JBuilder就是這么做的。InstallAnywhere中一個壓縮的JRE大概是8M,它可以針對linux、 win、mac等多個操作系統打包。

    (2) 使用JET、gcj等工具,將應用程序製作成一個真正的exe文件。
    採用這種方式做成的exe文件可以直接在沒有安裝JRE的計算機上運行。Java類庫全部被編譯成dll,變為本地調用。
    JET是收費的(從 http://www.excelsior-usa.com/jetdlevala.html可以下載3.6試用版)。JET安裝好以後,它要把系統上安裝的JDK編譯一下,要等很久。如果JDK是1.4.2_05版還需要打一個補丁。
    gcj有windows和Linux版,直接下載zip包,不需要安裝。裡面有不少例子,一些build的批處理文件。從原理來說,gcj自己實現了 JVM規范,當運行用gcj製作的exe(大約2M)時會啟動裡面的一個小型jvm,在上面跑應用程序。不過,gcj目前還不能完整地支持Swing。
    但不管怎樣,把Java做成純exe實在是吃力不討好,有很多限制,文件又大。

    (3) 使用exe4j製作偽exe文件。
    原理:可執行的jar包文件可以通過命令行java -jar jarfile.jar來執行。製作偽exe其實做法一樣,只不過做成exe,調用系統中的java.exe來運行它。
    一般情況下,exe4j做成的可執行文件仍需JRE支持,也就是說只能在安裝了JRE的計算機上運行。不過有一種方法可製作偽exe文件,在沒有安裝 JVM的機器上也能運行:雖然exe4j並不提供將JRE打包的功能,但是它提供如何搜索JRE的方法。在第六項設定[JRE]中有一步[Search sequence],添加一個Directory方式的搜索入口,指定是相對目錄「.」 ,然後把JRE目錄中的bin和lib兩個目錄復制到你的發布目錄中就可以了。(當然你可以不用當前目錄「.」,任何當前目錄下的其他目錄也可以,比方 「./JRE」之類的)。此時發布目錄中生成的exe文件就在運行時就會調用當前目錄中的JRE,而不是通過系統注冊表及環境變數尋找JRE了,所以只要把整個發布目錄(含exe及JRE的bin和lib)復制到其他計算機上,也就實現了「目標機即便沒有安裝過JRE也可以執行」。當然,這種發布方式無法得到一個內含JRE的單獨的exe文件。另外,JRE的完整目錄有50M,但是我們的程序只可能調用其中很少的一部分,你可以手動為發布目錄中的JRE減肥、去掉不使用的文件,但這需要一定的經驗。減肥後的JRE根據應用程序的不同,最小可以只有10M左右。

    (4) 把java應用程序最後做成applet。
    將java applet編入html文件,用瀏覽器方式打開,可以在任何沒有安裝JRE的機器上運行,好比exe文件一樣(當然在安裝了JRE的計算機上也可以用批處理文件或java命令來運行)。Windows IE打開applet靠的是一個叫「micosoft VM」的東西,現在該軟體一般都是自帶的。不過,Windows IE支持的JDK最高版本只能到JDK1.1。如果別人的機器運行不了applet,無非這三個原因:
    a. 程序編譯時使用的JDK版本太高,Windows IE不支持。用較老闆版本的編譯器重新編譯(v1.1之前)就可以了。比如在dos下javac -target 1.1 *.jav(強制使用JDK1.1編譯源程序)。
    b. 用戶的Windows沒有micosoft vm(這種情況比較少見,只有windows XP第一版等極少數情況)。這種情況下,當客戶的IE每次load applet時候, Windows會提示「沒有download micosoft VM」,他只需從網上下一個就可以了。
    c. 用戶計算機上裝有一些保護ie的軟體(比如最新的windows sp2有時就會防止java applet的loading)。暫時關閉保護功能就可以了。

    (5) 使用JBuilder、exe4j等工具製作成需要JRE支持的exe文件。

    Ⅵ 基於 devenv 實現自動化編譯,生成測試文件

    想要實現自動化編譯並生產打包替換文件,首要的對項目進行編譯生成.一般編譯 donnet 項目有三種方式 csc.exe , MSbuild(不需要安裝vs) , devenv(需要安裝vs).因為自己已經安裝了vs了,所以直接使用devenv去編譯程序了

    大致流程如下

    SVN 工具使用TortoiseSVN. 為了簡化操這里直接使用 TortoiseProc.exe(TortoiseSVN的GUI程序) 所提供的命令行,對項目進行更新等操作
    使用Demo

    具體的使用方式可以在 TortoiseSVN 提供幫助文檔里去查看

    因為項目的日期和版本是寫死在了程序里的,每次給測試生產替換文件時候都得去修改程序日期.大致思路是通過正則去修改文件.考慮到需要後面可能需要修改的地方較多,目前是通過Json去配置需要修改文件 和 對應正則 和 調用的方法(獲取的值).為了提供修改靈活性,目前是通過 CSharpCodeProvider 去編譯 C# 文件,來方便隨時修改獲取新的值得規則

    大致流程如下

    json 配置文件如下

    假如 Test.cs 文件需要修改內如下

    新增一個 Units.cs(用於動態編譯) 文件,生成操作改為內容,不參與編譯

    對 CSharpCodeProvider 進行簡單封裝,CSharpRunCode 類 主要是對 C# 字元串進行編譯,和提供一個可以調用 C# 字元串中方法

    使用方法

    執行結果

    VS 安裝的是2017,devenv 正常路徑應該是 [C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE] 下,網上一堆動態查找 devenv 路徑的方法.最後感覺通過注冊表方式比較靠譜, 參考這篇

    具體實現

    找到了路徑後接下來就是,將路徑寫入環境變數(或者執行 devenv 先調轉到目錄),調用CMD然後去執行 devenv 程序去編譯項目操作了
    對調用CMD 簡單封裝下

    devenv 具體參數可以參考 微軟官網文檔
    示例

    devenv 回輸出,然後判斷是否全部編譯成功

    文件編譯好之後,就是對文件的拷貝操作了這里就不描述了

    效果如下

    Ⅶ 讓eclipse自動編譯

    eclipse在項目發布時,tomcat伺服器中的文件沒有被重新載入,原因是文件沒有被重新編譯,讓eclipse自動編譯,需要經過以下幾個步驟的操作:

    1、在project中勾選build Automatically 發布時自動編譯,而build All是手動編譯。

    閱讀全文

    與自行編譯怎麼弄相關的資料

    熱點內容
    android錄屏工具 瀏覽:838
    成都互動直播系統源碼 瀏覽:953
    usb藍牙android 瀏覽:405
    伺服器顯示error1什麼意思 瀏覽:708
    python代碼精簡 瀏覽:457
    文件加密了怎麼找到了 瀏覽:193
    jellyfin插件怎麼選擇主伺服器 瀏覽:836
    asp用戶注冊源碼 瀏覽:48
    什麼是照片壓縮文件 瀏覽:392
    java調用js代碼 瀏覽:979
    崑山市民app怎麼修改身份信息 瀏覽:779
    php登陸次數 瀏覽:744
    python字元轉成數字 瀏覽:822
    海川用的是什麼伺服器 瀏覽:376
    口才是練出來的pdf 瀏覽:458
    雲伺服器哪個公司性價比高 瀏覽:517
    源碼論壇打包 瀏覽:558
    php怎麼做成word 瀏覽:692
    python批量生成密鑰 瀏覽:492
    程序員要不要考社區人員 瀏覽:150