導航:首頁 > 源碼編譯 > 編譯器如何調制

編譯器如何調制

發布時間:2022-11-30 04:26:35

❶ 關於C++編譯器F5、F11鍵調試的問題

呵呵,這個問題很容易的。先說cout吧,這是一個對象,類型是ostream&,這個時候F11就會進入ostream這個類的文件裡面執行。有兩個辦法解決,第一個:在進入後按shift+F11,操作是跳出函數。那麼就會執行完那個文件裡面的有關代碼並跳出來,接下來的<<是個重載操作符,在F11的作用下也會進入更底層的操作。解決的方法同上。除此之外還有個辦法:將游標移到輸出語句的下一行語句,按ctrl+F10,直接執行到當前游標所在的地方,這樣就可以一次性執行完輸出語句了。delete同理。不清楚的話再交流啊。呵呵。

❷ 如何在編譯器里設置調用別人寫好的lib和dll步驟

步驟:1.Tools->options->projects and solutions->VC++ directories分別在包含文件,庫文件填加了路徑

(這些路徑只告訴編譯器怎麼找文件,沒有說把那裡面的文件加入工程.)

(若不設置,編譯報錯:無法打開***文件)

2.Project->properties->c/c++->general->additional include directories 添加包含文件

Project->properties->linker->general->additional library directories 添加庫文件

Project->properties->linker->input->additional additional dependencies添加用到的lib

(這一步也可以在代碼中顯示調用 #pragma comment(lib, "***.lib") )

(若不添加,連接報錯:無法解析的外部符號)

3.將dll文件拷貝到工程debug文件下(如果不拷貝,編譯鏈接不報錯,運行報錯:無法找到***.dll)切記第三條,讓老子排查了一上午,當然最好把所有輸出目錄定位到一個文件下面。

附:

DLL與LIB文件的區別

共有兩種庫:
一種是LIB包含了函數所在的DLL文件和文件中函數位置的信息(入口),代碼由運行時載入在進程空間中的DLL提供,稱為動態鏈接 庫dynamic link library。
一種是LIB包含函數代碼本身,在編譯時直接將代碼加入程序當中,稱為靜態鏈接庫static link library。
共有兩種鏈接方式:
動態鏈接使用動態鏈接庫,允許可執行模塊(.dll文件或.exe文件)僅包含在運行時定 位DLL函數的可執行代碼所需的信息。
靜態鏈接使用靜態鏈接庫,鏈接器從靜態鏈接庫LIB獲取所有被引用函數,並將庫同代碼一起放到可執行文件 中。

關於lib和dll的區別如下:
(1)lib是編譯時用到的,dll是運行時用到的。如果要完成源代碼的編譯,只需要 lib;如果要使動態鏈接的程序運行起來,只需要dll。
(2)如果有dll文件,那麼lib一般是一些索引信息,記錄了dll中函數的入口和位 置,dll中是函數的具體內容;如果只有lib文件,那麼這個lib文件是靜態編譯出來的,索引和實現都在其中。使用靜態編譯的lib文件,在運行程序時 不需要再掛動態庫,缺點是導致應用程序比較大,而且失去了動態庫的靈活性,發布新版本時要發布新的應用程序才行。
(3)動態鏈接的情況下,有兩個 文件:一個是LIB文件,一個是DLL文件。LIB包含被DLL導出的函數名稱和位置,DLL包含實際的函數和數據,應用程序使用LIB文件鏈接到DLL 文件。在應用程序的可執行文件中,存放的不是被調用的函數代碼,而是DLL中相應函數代碼的地址,從而節省了內存資源。DLL和LIB文件必須隨應用程序 一起發行,否則應用程序會產生錯誤。如果不想用lib文件或者沒有lib文件,可以用WIN32 API函數LoadLibrary、GetProcAddress裝載。

使用lib需注意兩個文件:
(1).h頭文件,包含 lib中說明輸出的類或符號原型或數據結構。應用程序調用lib時,需要將該文件包含入應用程序的源文件中。
(2).LIB文件,略。

使 用dll需注意三個文件:
(1).h頭文件,包含dll中說明輸出的類或符號原型或數據結構的.h文件。應用程序調用dll時,需要將該文件包含 入應用程序的源文件中。
(2).LIB文件,是dll在編譯、鏈接成功之後生成的文件,作用是當其他應用程序調用dll時,需要將該文件引入應用 程序,否則產生錯誤。如果不想用lib文件或者沒有lib文件,可以用WIN32 API函數LoadLibrary、GetProcAddress裝載。
(3).dll文件,真正的可執行文件,開發成功後的應用 程序在發布時,只需要有.exe文件和.dll文件,並不需要.lib文件和.h頭文件
望採納

❸ c語言編譯器如何運行

編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。

1、預處理階段:

主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)

2、匯編階段:

插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。

3、編譯階段:

將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。

4、鏈接階段:

在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。

❹ 如何配置gcc編譯器為默認編譯器

默認編譯器的設置,是通過全局變數的設置:
你進入命令模式,打命令:vi /etc/profile
在打開的文件里,加上:
PATH=$PATH:$gcc_PATH/bin
其中:$gcc_PATH是你的編譯器安裝路徑
例如我的是:
PATH=$PATH:/opt/codesourcery/arm-2008q3/bin
/opt/codesourcery/arm-2008q3是我的gcc安裝路徑。
然後保存退出,重啟後,就有默認編譯器了。

❺ 如何設置codeblocks編譯器

首先在編譯器設置中設置為 vc 2010即可。
但是只安裝vc 2010的話,在vc的bin目錄中無法找到rc.exe和cdb.exe。
rc.exe可以從C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin目錄下找到。你也可以把rc.exe 和rcdll.dll拷貝到vc的bin目錄下。
cdb.exe無法找到,你必須下載 Debugging Tools for Windows 。當然這個東西沒有單獨的包可下載,你可以下載Microsoft Windows SDK for Windows 7 and .NET Framework。這個東西現在只需先下載一個500k的引導程序,然後其他的都不要,只要Debugging Tools for Windows就好了。
安裝好的cdb.exe在C:\Program Files\Debugging Tools for Windows (x86)目錄下,你需要在compiler and debugger settings中的Toolchain executables選項的additional paths中增加這個目錄以便codeblocks查找它。
ok,現在你可以用目前最棒的c++編輯器和最棒的c++編譯器了:)
或許你在編譯一個帶資源文件的工程,而這個資源文件#include <windows.h>時,你又會遇到問題:致命錯誤 RC1015: 無法打開包含文件 'windows.h'。還是一樣在compiler and debugger settings中的search directories設置中為編譯、鏈接、資源編譯三個選項加上下面這個查找目錄:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include

❻ 編譯器中調整縮進格式的快捷鍵,求大神

向前縮進的快捷鍵是Shift + Tab,你可以試一下,至少在Visual Studio 2012中是這樣的。希望你能採納~~

❼ window系統自帶編譯器嗎怎樣調用編譯器

window 是沒有自帶編譯器的,所以下載程序要帶編譯器的。

❽ MATLAB 如何配置編譯器

在MATLAB的Command Window下輸入命令 mbuild –setup,並根據MATLAB的提示選擇合適的編譯器,使用Microsoft Visual C++6.0,進行對C++連接環境的設置。
過程如下:
>> mbuild -setup
按照提示選擇操作,選擇編譯器進行安裝
然後,在MATLAB的Command Window下輸入命令 mex –setup,進行對編譯環境的設置。過程如下:
>> mex -setup
按照提示選擇操作,選擇你所需要的編譯器就可以了。

❾ 編譯器是如何運行的 什麼是編譯器

1、一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器 (Linker) → 可執行程序 (executables)。

2、編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。

閱讀全文

與編譯器如何調制相關的資料

熱點內容
設備樹編譯vendor 瀏覽:369
app神州租車怎麼退訂單 瀏覽:864
幽默程序員的作文 瀏覽:287
linuxbenchmark 瀏覽:895
高分子pdf 瀏覽:689
加密電池測電流 瀏覽:894
電腦怎麼下載appstore 瀏覽:725
兩台電腦使用代理伺服器怎麼連接 瀏覽:231
初創公司買什麼配置的雲伺服器 瀏覽:165
程序員的實力測試 瀏覽:509
手機版寶可夢模組的伺服器怎麼進 瀏覽:119
qt在arm上編譯過程 瀏覽:124
黑白命令在哪裡 瀏覽:22
演算法崗問面試官的問題 瀏覽:117
720pjpg壓縮 瀏覽:525
經濟學人app怎麼用 瀏覽:734
thunderbird如何刪除伺服器 瀏覽:632
編譯內核模塊准備工作 瀏覽:187
protues單片機 瀏覽:680
淘寶想多開店怎麼租伺服器 瀏覽:581