A. C語言編輯編譯連接的作用是什麼
C語言編輯的作用是檢查語法,製作C語言的源文件和頭文件,生成匯編代碼。
C語言編輯的作用是將匯編代碼轉換機器碼。在這一步中,會對文件內部的語法語義做處理,如果編譯出錯,無法進行後續動作。
C語言鏈接的作用是將機器碼鏈接到一起生成可執行程序。這一步會對文件之間的關聯做檢查,如果出錯,將不會生成可執行程序,也就無法執行。
(1)編譯機之間免密連接擴展閱讀:
C語言鏈接時,將源文件中用到的庫函數與匯編生成的目標文件.o合並生成可執行文件。該可執行文件會變大很多,一般是調用自己電腦上的靜態庫。
靜態庫和應用程序編譯在一起,在任何情況下都能運行,而動態庫是動態鏈接,文件生效時才會調用。很多代碼編譯通過,鏈接失敗就極有可能在靜態庫和動態庫這出現了紕漏,要視情況解決。缺少相關所需文件,就會鏈接報錯。這個時候就要檢查下本地的鏈接庫是不是缺損。
B. linux下配置遠程免密登錄方法教程
Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。本文主要描述了CentOs6.3系統下配置免密登錄的詳細過程。非常不錯,具有參考借鑒價值,需要的朋友可以參考下
方法步驟
ssh遠程登錄,兩種身份驗證:
1.用戶名+密碼
密鑰驗證
機器1生成密鑰對並將公鑰發給機器2,機器2將公鑰保存。
機器1要登錄機器2時,機器2生成隨機字元串並用機器1的公鑰加密後,發給機器1。
機器1用私鑰將其解密後發回給機器2,驗證成功後登錄
1、用戶名+密碼
如上圖所示,機器1要登錄到機器2
輸入exit回到機器1
2、遠程免密登錄
輸入命令ssh-keygen
按三次回車,完成生成私鑰和公鑰
到/root/.ssh目錄下可看到剛剛那條命令生成的私鑰和公鑰
輸入ssh--id 機器2的ip
再輸入機器2的密碼,即可將公鑰傳給機器2
機器2的/root/.ssh目錄下的authorized_keys文件保存著剛才機器1傳過來的公鑰(可用cat命令查看,並對比機器1上的公鑰,是一樣的)
機器1上直接輸入ssh 機器2的ip即可登錄機器2,不用再輸密碼,自此完成了遠程免密登錄的配置
補充:Linux基本命令
1.ls命令:
格式::ls [選項] [目錄或文件]
功能:對於目錄,列出該目錄下的所有子目錄與文件;對於文件,列出文件名以及其他信息。
常用選項:
-a :列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-d :將目錄像文件一樣顯示,而不是顯示其他文件。
-i :輸出文件的i節點的索引信息。
-k :以k位元組的形式表示文件的大小。
-l :列出文件的詳細信息。
-n :談備前用數字的UID,GID代替名稱。
-F : 在每個文件名後面附上一個字元以說明該文件的類型,“*”表示可執行的普通文 件;“/”表示目錄;“@”表示符號鏈接;“l”表示FIFOS;“=”表示套接字。
2.cd命令
格式:cd [目錄名稱]
常用選項:
cd .. 返回上一級目錄。
cd ../.. 將當前目錄向上移動兩級。
cd - 返回最近訪問目錄。
含清3.pwd命令
格式: pwd
功能:顯示出當前工作目錄的絕對路徑。
相關閱讀:Linux主要特性
完全兼容POSIX1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
多用戶、多任務
Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。
良好的界面
Linux同時具有字元界面和圖形界面。在字滾畢符界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。
支持多種平台
C. 程序編輯,程序編譯,程序連接
編輯,類似於文本編輯,將程序代碼輸入進去,可以修改,增加,刪除
編譯,將程序代碼按一定規則變換成機器可以識別的可執行代碼序列,
連接,將編譯的代碼序列與必須的啟動代碼,用到的庫文件按規則組合連接成可執行程序
D. 怎麼配置source insight使得可以編譯C語言程序
source insight是個代碼瀏覽工具,
它會自動對你的工程源碼進行語法分析,
方便你迅速查找對某個特定符號的引用。它本身不帶編譯器調試器,但是你可以指定要用的編譯器,記得source insight里有這個選項。
1、General
Project File Synchronization->Remove missing file from project選上可以避免因文件找不到而彈出錯誤對話框。
把Misc->Use stricter confirmation dialog選項去掉可以使確認時不輸入"yes"。
2、Typing
Source Editing->Indent commands affect #-preprocessor statements。去掉後(默認值),進行多行縮進時不會影響預處理語句(如#if...#endif)。
Auto Completion->Use detailed completion window,選上後,聯想時可以出現該函數的詳細信息。見下圖:
(簡單)
(詳細)
Auto Completion->Insert paremeters for functions,去掉後,自動聯想不會把整個參數都輸出到當前行。
Browsing in Lists->Match syllables while typing(slower)。在symbol list框檢索符號時是否採用音節匹配方式,如對於函數FindNext,輸入find或者next都可以找到該函數。該功能可能導致反應緩慢(視工程和機器配置而定),建議關閉,因為即使在關閉狀態下也可以通過先輸入空格再輸入單詞來動態啟用該功能。
注意Browsing in Lists里其實有兩個功能,但一般我們只能看到Match syllables while typing這一條,應該是si的菜單設計沒有做好,導致在中文windows下不能顯示全,另一個功能是Match members while typing,用於打開/關閉按成員變數名來檢索類/結構體的功能。
3、Files
Opening Files->Sharing: Let other programs modify files,以共享方式打開文件,這個很重要,保證可以在其它編輯中同時編輯該文件。典型的場景就是用ide環境去動態編譯調試,而用si靜態閱讀。
Customize 'Open' Command...,用於設置Ctrl+O打開的頁面,默認選項是 Project File list view in Project Window,建議保持默認。
Saving Files->Preserve Undo data and revision marks after saving,如果發現保存後就不能undo了,請檢查該選項是否選中。
Remove extra white space when saving。保存時自動去除每行尾部的空格和tab。建議選中。
4、Languages
自定義其它編程語言的語法解析,這個...還是另寫一篇來講吧。
Conditional Parsing不要錯過了,這里的Conditions功能實在讓人喜歡。Conditions是什麼意思呢?我們的代碼中一般都會有一些開關宏,通過在Conditions中配置這些宏的默認值,可以讓si把配置為不開啟的宏視為無效代碼,從而不進行符號檢索。
如果源代碼中的開關宏太多,還可以使用Condition Parsing中的Scan Files來自動找出所有開關宏。
5、Symbol Lookups
沒太多特別的。
6、Display
顯示配置和個人喜好和顯示器的狀態有關,偶用的x60小本,屏幕資源有限,所以在Display Elements里把Project Window, Status Bar, Tool Bar,Clip Window都關了,基本用快捷鍵可以代替它們。
Options->Horizontal scroll bars for each new window。很多大師都教導我們說一行不要寫太多代碼。在這個指導思想下,我們不需要這個東東。
Show exact case of file names。如果看不慣si把所有的文件名首字母都大寫就勾上這個選項吧。
Tile source and destination windows for Source Link commands。Source Link很多時候用於外部命令輸出結果的解析(如Make, lint),這個功能會把解析結果與目標窗口自動tile,很實用。
Trim long path names with ellipses。這個建議不要選中。事實上這個主要影響標題欄,但一般來說標題欄上的空間是充裕的,選上之後往往會令我們不知道所編輯文件的具體位置。
E. java中class文件編譯成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創建安裝盤。
5. 使用IBM AlphaWorks提供的一個高性能Java編譯器,該編譯器可以從下面的地址獲得:
http://www.alphaworks.ibm.com/tech/hpc
6. JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個測試版本:
http://www.excelsior-usa.com/jet.html
7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合並了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede已經不復存在了。
8. JToEXE
Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的主頁上找不到了
F. 編譯之後為什麼要連接
這是一個編程基礎的問題。
目前編程語言主要有兩種類型,一種是編譯型語言,一種是解釋型語言。二者的區別在於:編譯型語言需要編譯、鏈接生成可執行文件之後才能運行,解釋型語言直接就可以運行。C語言是一種編譯型語言。
對於計算機來說,只能運行二進制的機器指令。為了方便編寫指令給計算機,通過簡單的替換之後有了匯編語言。但是匯編語言相對來說還是相當復雜,編寫軟體時工作量巨大。所以就有了如C語言,C++,JAVA之類的高級語言。
這些語言其實是對匯編做了抽象封裝。編譯這個動作就是將C語言翻譯成了匯編。C語言經過編譯這個動作後每個.C文件都會生成一個OBJ,鏈接這個動作是將多個OBJ鏈接到同一個可執行文件中,最後生成的是EXE文件。
G. C語言編譯產生的.OBJ文件和匯編編譯產生的.OBJ文件,如何連接
一同學習。。。
Trubo C的命令行編譯連接
所謂命令行編譯,是指在dos下,調用Trubo C的tcc.exe程序.來完成對turbo C源程序的編譯連接工作.當選擇對後綴為*.asm的匯編程序文件編譯時,tcc還要調用TASM後才能對後綴為.asm的文件進行編譯,這種方式適合於c程序與匯編語言混合編程的編譯連接,當c程序嵌入匯編指令時,也必須用此方法編譯連接。
命令行編譯的格式為:
tcc [選項1 選項2 ...]文件名1 文件名2...其中選項是指對後面給出的文件進行連接時的選擇項,可選的常用選擇項如下所示:每個選項前都帶有"-"號,且大小寫是區分的。文件名是指源文件.c或目標文件.obj或庫文件.lib當不指定只編譯不連接時,tcc將完成編譯和連接兩個步驟,對.lib庫只進行形式上的連接,標准庫用戶不用進行連接。
例如:
tcc -ib:\include -lb:\lib -etest start.c body.obj myc當執行該命令時,表示將start.c源文件和body.obj目標文件及myc.c(命令行中該文件無後綴),分別進行編譯(對body.obj文件不再編譯),然後連接生成名為test的執行文件test.exe(由-test給出).
-ib:\include 表示包含文件的路徑是b:\include
-ib:\lib 表示庫文件的路徑是b:\lib
又例如:
tcc -ms -efile -lc:\tc\lib file1 file2.obj graphics.lib
其中-ms表示選擇小內存模式進行編譯,它也是turbo c的預設編譯模式,將file1進行編譯,然後和file2.obj 及graphics.lib進行連接.生成file.exe的可執行文件.其中graphcis.lib庫的路徑為c:\tc\lib,即意為在c:\tc\lib目錄下去尋找graphics.lib文件.當進行混合編程時,如果已有匯編程序s3.asm其命令行可寫為
tcc ic:\tc\include -lc:\tc\lib -mm s1 s2 s3.asm mylib.lib
表示用中模式(-mm)編譯源文件s1.c和s2.c,調用TASM對s3.asm進行編譯,然後連接生成可執行文件s1.exe,編譯時,到c:\tc\include目錄中去找包含文件,到
c:\tc\lib目錄中去找庫文件mylib.lib.
---------------------------------------
http://topic.csdn.net/t/20010308/22/81569.html
http://www.down22.org/plus/view.php?aid=15882
比VC難用。。。