編譯鏈接和交叉連接的區別與聯系
❶ 用c語言編的程序,要生成可執行文件的時候,要編譯、鏈接,編譯是什麼意思啊鏈接是什麼意思編譯和鏈接
編譯就是把C代碼轉換成CPU可執行的機器指令,每個.c文件生成一個.obj文件。
鏈接就是把生成的(多個) .obj 文件及用到的庫文件(.lib)一起組合生成可執行文件(.exe)。
❷ VC中編譯與連接有什麼區別
要連接要先編譯,如果沒編譯會連接時會自動編譯。舉個例子,如果你有兩個文件,對一個文件進行編譯只是講這個文件編譯成了目標文件.obj,但是另外一個文件沒有,需對另外一個文件進行編譯,可以觀察結果輸出框的顯示,這時連接便會將兩個文件連接在一起,才會將互相調用的函數等聯系起來,生成.exe。如果不編譯直接點連接,系統自動將兩個文件編譯,並連接,生成.exe文件。
假設兩個文件分別是a.cpp,b.cpp,a調用b的函數:
編譯a:
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.cpp
a.obj - 0 error(s), 0 warning(s)
然後編譯b:
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
b.cpp
b.obj - 0 error(s), 0 warning(s)
然後連接:
--------------------Configuration: a - Win32 Debug--------------------
Linking...
a.exe - 0 error(s), 0 warning(s)
假如編譯一個後直接連接:
編譯a:無變化
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.cpp
a.obj - 0 error(s), 0 warning(s)
直接連接:
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
b.cpp
Linking...
a.exe - 0 error(s), 0 warning(s)
如果兩個都不編譯,直接點連接:
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.cpp
b.cpp
Linking...
a.exe - 0 error(s), 0 warning(s)
注意:假如文件沒有被修改的話,編譯一次後不會再進行編譯了,可以直接連接,如果這時不編譯,直接點連接,也只是連接,沒有編譯過程。
編譯.h文件會提示不能編譯,因為.h一般存放的是函數的聲明,類的定義等,系統不會編譯,但是可以在頭文件中點連接進行整個程序的編譯連接過程。
連接後就可以運行了,也可以在沒編譯、連接時點運行,系統會自動編譯、連接。
❸ 交叉連接和全連接區別
我的啰嗦回答,以前回答的
http://..com/question/118549278.html
希望對你有幫助
❹ 自然連接和交叉連接的區別
交叉連接將產生連接所涉及的表的笛卡爾積,笛卡爾積結果集的大小為第一個表的行數乘以第二個表的行數。
自然連接的結果是,笛卡爾積的子集,把,笛卡爾積中屬於不同表的同名欄位對應值相等的那些行篩選出來作為結果集
❺ 請問什麼是交叉編譯跟本地編譯有什麼區別拜託各位大神
你那個代碼很可能是在pc平台上交叉編譯到arm設備上的。這樣你可以在pc上修改程序,然後pc上編譯,最後把編譯的結果下載到arm中就可以運行了。不知道你說的本地編譯是什麼意思,通常所說的那種本地編譯就是編譯的結果還是在pc上運行,如果你期望的是這個的話,可以考慮修改一下編譯器的參數,查一下gcc的說明就知道哪個參數是指定交叉編譯平台的,把那個參數去掉就是本地編譯了。但是,需要注意的是,這樣多半不能成功運行,因為交叉編譯到arm上的一般是基於某種特殊的linux平台的,即使你使用了linux平台,其中可能有一些函數也會不同的。。。
❻ 相互鏈接、友情鏈接、交叉鏈接有什麼區別呢
相互鏈接:我們常指的是做外鏈的一種方式,用一個link頁面,這個頁面是有專門的p-link生成的。當方即可操作,一般ROBOTS設置為不讓搜索引擎收錄!簡單!
友情鏈接:一般指在權重反面要求。顯示在首頁下方,一般首頁對首頁,帶上對方所需的關鍵詞,PR指相當情況下,較容易成功。
交叉鏈接:像三角戀關系。溝通要比較多,較不容易!例:三個網站:A、B、C
A,B兩網站是我的,要要進行操作是 我用B網站鏈向對方網站C,而我要求對方網站鏈向我的網站A。
❼ 請問什麼是交叉編譯跟本地編譯有什麼區別
交叉編譯就是在A平台編譯出能在B平台運行的文件。
❽ c語言裡面的編譯和鏈接是怎麼回事
C/C++語言的完整編譯過程是
一、預編譯
處理#define #if #include這類#開頭的語句,這些稱為預編譯指令。這個過程中會把.h文件和.c/.cpp文件組合成最終交給compile過程的原文件。這個原文件是不包含任何#開頭的語句的。所有#define定義的宏也會被替換。
二、編譯
把上面那個原文件編譯成.o或者VC里是.obj文件。這個文件保存了機器碼化的函數、函數的描述、全局變數的描述、乃至段的描述等等。
三、連接
把可執行程序需要的所有的編譯過程產生的.o或者.obj文件組合到一起。(這里也包括.lib文件,.lib文件件本質上就是打包的.obj文件集合)。另外連接過程還會組合一些其他數據,比如資源、可執行文件頭等等。
❾ 搜索引擎優化中內鏈、外鏈、交叉鏈接有什麼區別,看的資料越多反而有點糊塗了。
內鏈:你網站本身的鏈接外鏈:其他網站論壇有你網站地址的鏈接
交叉連接:這是友情鏈接的一種新的方式,譬如你有兩個網站,我有一個網站 ,我們不是直接互換鏈接,而是A和B鏈接,B和C鏈接,這樣就是交叉鏈接。
❿ 編譯和鏈接的區別是什麼
編譯 源文件 -> 機器碼
鏈接 機器碼 -> 可執行文件
在GNU/Linux系統下:
編譯: .c -> .o
鏈接: .o .o .o -> a.out
具體的可以看gcc的相關文檔。
這個可以參考:
http://www.network-theory.co.uk/docs/gccintro/gccintro_82.html