⑴ GIT變性液是什麼它是什麼的縮寫
Git
維基網路,自由的網路全書跳轉到: 導航, 搜索
Git
原作者 Linus Torvalds
開發者 Junio Hamano, Linus Torvalds
穩定版本 1.6.5.7
/ 2009年12月17日;10個月前 (2009-12-17)
預覽版本 1.6.6.rc3
/ 2009年12月17日;10個月前 (2009-12-17)
編程語言 C,Bourne Shell,Perl[1]
操作系統 POSIX
類型 版本控制
許可協議 GNU通用公共許可證 版本二
網站 http://git-scm.com/
Git 是一個由林納斯·托瓦茲為了更好地管理linux內核開發而創立的分布式版本控制/軟體配置管理軟體。需要注意的是和GNU Interactive Tools,一個類似Norton Commander界面的文件管理器相區分。
Git最初的開發動力來自於BitKeeper和Monotone[2][3]。 Git最初只是作為一個可以被其他前端比如Cogito 或 StGIT[4]包裝的後端而開發的。不過,後來Git內核已經成熟到可以獨立地用作版本控制[5]。很多有名的軟體都使用Git來進行版本控制[6],其中有Linux內核,X.Org伺服器和OLPC (OLPC) 內核開發。[7]
目錄 [隱藏]
1 命名來源
2 主要功能
3 早期歷史
4 實現原理
5 移植性
6 使用
6.1 使用Git的專案
7 相關條目
8 參考文獻
9 外部鏈接
[編輯] 命名來源
林納斯·托瓦茲自嘲地取了這個名字"git"。在英式英語中指一個愚笨或者不開心的人。[8]
「 I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git. 」
Git的官方維基也給出了多種其他的關於名字的解釋。[9]
[編輯] 主要功能
Git --- The stupid content tracker, 傻瓜內容跟蹤器。Linus 是這樣給我們介紹 Git 的。
Git 是用於 Linux 內核開發的版本控制工具。與常用的版本控制工具 CVS, Subversion 等不同,它採用了分布式版本庫的方式,不必伺服器端軟體支持,使源代碼的發布和交流極其方便。 Git 的速度很快,這對於諸如 Linux kernel 這樣的大項目來說自然很重要。 Git 最為出色的是它的合並跟蹤(merge tracing)能力。
實際上內核開發團隊決定開始開發和使用 Git 來作為內核開發的版本控制系統的時候,世界開源社群的反對聲音不少,最大的理由是 Git 太艱澀難懂,從 Git 的內部工作機制來說,的確是這樣。但是隨著開發的深入,Git 的正常使用都由一些友好的腳本命令來執行,使 Git 變得非常好用,即使是用來管理我們自己的開發項目,Git 都是一個友好,有力的工具。現在,越來越多的著名項目採用 Git 來管理項目開發,例如:wine, U-boot 等,詳情看 http://www.kernel.org/git
作為開源自由原教旨主義項目,Git 沒有對版本庫的瀏覽和修改做任何的許可權限制,通過其他工具也可以達到有限的許可權控制,比如:gitosis, CodeBeamer MR。原本 Git的使用范圍只適用於 Linux / Unix 平台,但逐步並成熟了在 Windows 平台下的使用,主要歸功於Cygwin與msysgit環境與TortoiseGit這樣易用的 GUI 工具。其實 Git 的源代碼中已經加入了對 Cygwin 與 MinGW 編譯環境的支持並被逐步完善,對於 Windows 使用者是個福音。
[編輯] 早期歷史
早期Linux的開發人員是使用 BitKeeper 來管理版本控制和維護程式碼。2005年的時候,開發 BitKeeper 的公司同 Linux 內核開源社區結束合作關系,並收回使用BitKeeper的權利。Torvalds 開始著手開發Git 來替代BitKeeper。
[編輯] 實現原理
Git 和其他版本控制系統(CVS)有不小的差別,Git 本身關心檔案的整體性是否有改變,但多數的CVS,或Subversion 系統則在乎檔案內容的差異。因此Git 更像一個檔案系統,直接在本機上取得資料,不必連線到host端取資料回來。
[編輯] 移植性
在Windows 平台上有msysgit與tortoisegit可資利用。tortoisegit 還提供有UI。
⑵ minGW使用方法
基本用法在後面給你加上了
MinGW是指只用自由軟體來生成純粹的Win32可執行文件的編譯環境,它是Minimalist GNU on Windows的略稱。詳情請參考<http://www.mingw.org>。
這里的「純粹」是指「使用msvcrt.dll的應用程序」。無法使用MFC (Microsoft Foundation Classes)。
MinGW:一個可自由使用和自由發布的Windows特定頭文件和使用GNU工具集導入庫的集合,允許你生成本地的Windows程序而不需要第三方C運行時庫。
MinGW,即 Minimalist GNU For Windows。它是一些頭文件和埠庫的集合,該集合允許人們在沒有第三方動態鏈接庫的情況下使用 GCC(GNU Compiler C)產生 Windows32 程序。
在基本層,MinGW 是一組包含文件和埠庫,其功能是允許控制台模式的程序使用微軟的標准C運行時間庫(MSVCRT.DLL),該庫在所有的 NT OS 上有效,在所有的 Windows 95 發行版以上的 Windows OS 有效,使用基本運行時間,你可以使用 GCC 寫控制台模式的符合美國標准化組織(ANSI)程序,可以使用微軟提供的 C 運行時間擴展。該功能是 Windows32 API 不具備的。下一個組成部分是 w32api 包,它是一組可以使用 Windows32 API 的包含文件和埠庫。與基本運行時間相結合,就可以有充分的權利既使用 CRT(C Runtime)又使用 Windows32 API 功能。
MinGW 官方網站為 http://www.mingw.org
實際上 MinGW 並不是一個 C/C++ 編譯器,而是一套 GNU 工具集合。除開 GCC (GNU 編譯器集合) 以外,MinGW 還包含有一些其他的 GNU 程序開發工具 (比如 gawk bison 等等)。
開發 MinGW 是為了那些不喜歡工作在 Linux(FreeBSD) 操作系統而留在 Windows 的人提供一套符合 GNU 的 GNU 工作環境。
(此前的 cygwin 雖然也是 GNU 的 Windows 移植,但是 cygwin 是有版權的,而不是 GNU。)
所以,使用 MinGW 我們就可以像在 Linux 下一樣使用 GNU 程序開發工具。
GCC 就是 MinGW 的核心所在,GCC 是一套支持眾多計算機程序語言的編譯系統,而且在語言標準的實現上是最接近於標準的。並且 GCC 幾乎可以移植到目前所有可用的計算機平台。(我的電腦上就還裝有 DevKitPro,裡麵包含 GCC 的 ARM(for GBA/DS/GP32) 和 MIPS(for PSP) 版本。)
GCC 本身不像 VC 那樣擁有 IDE 界面(在 Windows 上也存在 Dev C++ 之類的支持 MinGW 編譯器的 IDE)。源代碼編輯你可以選用任何你喜歡的文本編輯器(據說微軟的開發人員包括 VC 的開發都不用 VC 所帶的 IDE 編輯器,而是選用 GNU 的 VIM 編輯器)。然後使用 make 等工具來進行軟體項目的編譯、鏈接、打包乃至發布。而像 cvs(svn) 源代碼版本控制工具可以讓世界上任何一個角落的人都可以參與到軟體項目中來。
關於 MFC,微軟基礎庫類,這個隨 VC++ 攜帶的一個源代碼公開的開發包,和其他 Windows 程序開發包是一樣的。如果有 VC++ 的授權,你完全可以使用 MFC 的源代碼,也就是你使用 GCC 來編譯 MFC 程序是完全可以的。
當然,GNU 下也很多 Windows 程序開發包,甚至有一些是支持跨平台使用的。不僅僅可以直接把源代碼編譯為 Windows 程序,也可以不經修改編譯為其他操作系統的圖形程序。
不過 GNU 下,最流行的圖形界面開發庫是 GTK+。GTK+ 也能很好的運行在 Windows 平台(比如 GIMP 和 Gaim)。
總體說來,使用 MinGW 就是 GNU。
基本用法:
在mingw環境中生成和使用dll都是十分方便的。
1.生成dll
gcc(g++) -shared -o test.dll test.c(test.cpp)
通過該命令生成test.dll,將導出test.c中非靜態的函數和相關的類。
(注by asper:該命令行在處理jni涉及的dll時無效)
我使用微軟C++編譯器,cl命令對帶有空格的路徑也是無效的,需要用""括住
2.連接dll到exe中
mingw使用dll的方式和靜態庫.a的方式是一樣的,連接的時候只需要加上-ltest即可,沒有lib前綴的要求。
3.編寫jni調用的dll
有辦法了! 是gcc少了行參數。 如下:
gcc -I%JAVA_HOME%\include -I%JAVA_HOME%\include\win32 -Wl,--add-stdcall-alias -shared -o call.dll call.c
參數:-Wl,--add-stdcall-alias 可以為函數加上標准調用前綴(stdcall @nn)。
這樣編譯出的dll就可以了。都知道win32中dll中的函數要求有標准調用前綴,在JNI中不方便手動處理這個,Sun又沒說清楚這事由編譯器辦。所以搞得我很郁悶。找了大半個月,終於在一個很古老的網頁上找到答案。
基本上和VC的界面差不多 學習C語言用的最多的還是VC++ 6.0
⑶ 如何用codeblocks+mingw-w64編譯器編譯glew庫
1、下載codeblocks16.01
選第一個codeblocks-16.01-setup.exe,這個是純IDE不帶編譯器。
2、下載mingw-w64
文件:mingw-w64-install.ex
3、安裝codeblocks,mingw-w64
codeblocks安裝參數:我把他安裝在d:盤。D:\Program Files (x86)\CodeBlocks
打開安裝文件codeblocks-16.01-setup.exe,然後一路點NEXT,在安裝路徑選擇你喜歡的地方,最後點finish結束。
mingw-w64安裝參數:
版本version:5.3.0,一般選最新的。(截止2016年04月20號5.3.0是最新的版本)
架構Achitecture:x86_64,win系統都是此架構,選這個x86_64可以編譯64位程序,i686隻能編譯32位。
線程Threads:選posix,posix跨平台。
異常處理Exception:seh。調試用。
build version:0.
安裝位置:我的安裝位置:D:\MinGW\mingw64
我的安裝位置:
點NEXT,等待安裝結束。
二、在IDE:codeblocks中配置mingw-w64編譯器,使之能編譯最簡單的c程序在cmd窗口即控制台列印出「你好!」
1、打開codeblocks,設置編譯器位置。(告訴IDE編譯器在哪裡)。
settings-彈出菜單第三行compiler setting(編譯器設置)。
點藍色框選擇mingw-w64安裝位置里的mingw文件夾,編譯器位置就設置好了。
可以編譯最簡單的程序了。
文件夾里有各種編譯器。
主要是要交叉編譯程序。我在64位系統可以編譯出32位系統能運行的程序。
擴展:在cmd里使用mingw32-make編譯程序:
先添加mingw-w64安裝文件的bin地址到系統path環境變數里。
復制mingw-w64bin文件夾到path里。
計算機-屬性-高級系統設置-環境變數-path,注意添加英文標號「;」。
三、最簡單的程序。
1、file-new-project-empty project(空項目)
參數如下:
我項目的位置放在D:\CodeBlocks工程下。
點finish完成。
什麼都沒有,別急,先去看看工程文件夾發生了什麼。
建立工程之前,什麼都沒有:
建立之後,且工程未添加文(裡面只有項目文件.cbp,沒有源代碼文件):
2、為項目添加源代碼文件。
files-new-files
這里鍵入源代碼文件名。
⑷ mingw內聯匯編傳參瞎傳
intel64位寄存器
新出64位寄存器R8~R15
R12D是R12的低32位
R12W是R12的低16位
R12B是R12的低8位
好像寬度不足,可以復制出來到notepad就能看清楚
【64位REX(WR0B)+ModR/M編碼的擴展有效定址】
══════════════════════════════════════════════════
r8(/r)
r16(/r)
r32(/r)
r64(/r)R8R9R10R11R12R13R14R15
mm(/r)
xmm(/r)
(十進制)/digit(Opcode)89101112131415
(二進制)REX.R+REG=
──────────────────────────────────────────────────
[Mod][REX.B+R/M]ModR/M
──────────────────────────────────────────────────
[R8][00][1000]0008101820283038
[R9][1001]0109111921293139
[R10][1010]020A121A222A323A
[R11][1011]030B131B232B333B
[-][-][1100]040C141C242C343C
disp32[1101]050D151D252D353D
[R14][1110]060E161E262E363E
[R15][1111]070F171F272F373F
──────────────────────────────────────────────────
[R8]+disp8[01][1000]4048505860687078
[R9]+disp8[1001]4149515961697179
[R10]+disp8[1010]424A525A626A727A
[R11]+disp8[1011]434B535B636B737B
[-][-]+disp8[1100]444C545C646C747C
[R13]+disp8[1101]454D555D656D757D
[R14]+disp8[1110]464E565E666E767E
[R15]+disp8[1111]474F575F676F777F
──────────────────────────────────────────────────
[R8]+disp32[10][1000]80889098A0A8B0B8
[R9]+disp32[1001]81899199A1A9B1B9
[R10]+disp32[1010]828A929AA2AAB2BA
[R11]+disp32[1011]838B939BA3ABB3BB
[-][-]+disp32[1100]848C949CA4ACB4BC
[R13]+disp32[1101]858D959DA5ADB5BD
[R14]+disp32[1110]868E969EA6AEB6BE
[R15]+disp32[1111]878F979FA7AFB7BF
──────────────────────────────────────────────────
R8/R8D/R8W/R8B/MM8/XMM8[11][1000]C0C8D0D8E0E8F0F8
R9/R9D/R9W/R9B/MM9/XMM9[1001]C1C9D1D9E1E9F1F9
R10/R10D/R10W/R10B/MM10/XMM10[1010]C2CAD2DAE2EAF2FA
R11/R11D/R11W/R11B/MM11/XMM11[1011]C3CBD3DBE3EBF3FB
R12/R12D/R12W/R12B/MM12/XMM12[1100]C4CCD4DCE4ECF4FC
R13/R13D/R13W/R13B/MM13/XMM13[1101]C5CDD5DDE5EDF5FD
R14/R14D/R14W/R14B/MM14/XMM14[1110]C6CED6DEE6EEF6FE
R15/R15D/R15W/R15B/MM15/XMM15[1111]C7CFD7DFE7EFF7FF
══════════════════════════════════════════════════
⑸ 有一個庫的源代碼,怎麼用mingw編譯產生成lib
mingw編譯出來的靜態庫後綴名為.a,編譯出來的動態庫的導入庫後綴名為.dll.a,而在windows下後綴名為.lib的庫可能是靜態庫也可能是動態庫的導入庫。
mingw編譯出來的動態庫的導入庫可以直接在vc中直接使用,例如
#pragma comment(lib, "libx264.dll.a")
這樣你就不需要生成一個.lib後綴的動態庫的導入庫了,網上也有如何從.dll生成.lib的方法。
如果鏈接了動態庫的導入庫libpthread.dll.a,你發布的應用程序就要帶上pthread的dll。
使用靜態庫的好處是發布的應用程序組件模塊里不需要帶上相關的dll,如果要使用mingw編譯出來的靜態庫,可以如下:
#pragma comment(lib, "libx264.a")
但是僅僅鏈接這么一個靜態庫是不夠的,你還需要鏈接
libgcc.a
libmingwex.a
⑹ mingw w64源碼怎麼編譯
應該是先安裝MSYS,再安裝mingw , 在mingw文件夾裡面應該有個bin文件夾 ,留意一下該文件夾裡面「應該」有gcc.exe的應用程序,假設該bin文件夾的全稱路徑是X:\..\mingw\bin,那麼將它添加將它添加到環境變數裡面。
⑺ windows下源碼編譯執行 $ ./configure $ make
這些都是典型的使用GNU的AUTOCONF和AUTOMAKE產生的程序的安裝步驟。所以嚴格來講windows環境下是不支持該系列指令的,需要在linux或類linux環境下執行。
希望採納,謝謝
⑻ 關於mingw
MinGWStudio完整安裝後有78M大小比起Vc6+DDK要小很多,而且MinGWStudio安裝目錄下的MinGW\include\ddk\目錄里有一個叫ntapi.h的頭文件,裡麵包括了很多未公開的函數原型及數據結構,感覺很爽啊!還有一個更爽的地方呢!那就是MinGW可以混用Windows XP SDK和DDK頭文件卻不會出現任何錯誤,在VC6中只能用namespace來解決這個問題,但MinGW里直接include頭文件就行了,用戶態程序可以使用用戶態可用的未公開函數,記得引入ntdll.a庫文件.
精簡的IDE,簡單的代碼完成功能,沒有向導,純手工寫代碼.怎麼看怎麼覺得這東西適合Eva,呵呵!
用QuickSys向導了一個空的驅動框架HelloDrv,只改了一行代碼:
#include "ntddk.h"
改成
#include "ddk\ntddk.h"
就可以毫不費力的用gcc編譯成KMD
D:\wjj\vcwork\hellodrv>gcc -o HelloDrv.obj -O3 -c HelloDrv.c
D:\wjj\vcwork\hellodrv>ld HelloDrv.obj --subsystem=native --image-base=0x10000 --file-alignment=0x1000 --section-alignment=0x1000 --entry=_DriverEntry -nostartfiles -nostdlib -L E:\MinGWStudio\MinGW\lib -l ntoskrnl -o HelloDrv.sys
由於gcc支持C99標准,可以使用動態數組以及隨處定義局部變數,雖然同樣是用C程序來寫驅動,但其實卻比VC要靈活很多.另外gcc的代碼優化能力相信不用我多說.
沒有想到脫離Visual Studio也可以寫SDK和DDK程序.開源組織里真的有很多好東東啊!gcc包里的Pascal編譯器gpc可以支持Object Pascal,支持AT&T Inline Asm,支持直接使用MMX/SSE/SSE2數據類型及指令,寫游戲都沒有問題.比起Delphi的編譯器dcc32真的是要強到哪裡去了,只是沒有人知道.
努力......
⑼ git的MINGW64可以編譯c++嗎
當然可以。
輸出gcc -v
或g++ -v
看看輸出。
⑽ Windows下如何編譯火狐源碼啊,我電腦上安裝了mingw+qt以及vs2013,要如何編譯啊,具體步驟是什麼啊
您好!很高興為您答疑。
關於此類開發問題,敬請登錄火狐社區與廣大愛好開發者進行交流。
如果對我們的回答存在任何疑問,歡迎繼續問詢。