導航:首頁 > 源碼編譯 > 編譯器調用

編譯器調用

發布時間:2023-06-27 02:05:29

Ⅰ 怎麼調用編譯器編譯C#的.CS文件

CSC.exe在你的安裝目錄下面,一般在 C:\WINDOWS\Microsoft.NET\Framework\ "這里選你按裝的版本"\
如果你實在找不到,開始-搜索 搜一下 「CSC.exe」 ,但是你只能在這個目錄下編譯,如果你想在任意目錄下編譯,你把這個csc.exe文件的所在路徑復制下來,添加到環境變數PATH後(我的電腦,屬性,高級,環境變數,系統變數,path,編輯),注意要在原來的結尾加個「;」再把你復制下來的路徑添加在這里,這樣你就可以在任意目錄下調用CSC.EXE 編譯文件很方便。

Ⅱ 誰能詳細說明一下編譯器自動調用類型構造函數進行類型轉換的原理

StrCell sc = dc + dc; 這條語句執行時調用StrCell的構造函數,與StrCell sc(dc + dc);相同。
它們都需要這樣的構造函數:StrCell(const DblCell &dc);

類型轉換是把一種類型轉換為另一種不同的類型,而源代碼中的構造函數接受的就是DblCell參數,所以StrCell sc = dc + dc;嚴格來說不算是類型轉換。

假如構造函數是StrCell(const StrCell &dc); 這個時候就需要把DblCell轉換為StrCell,此時存在一個類型轉換。

因為要把DblCell轉換為StrCell,所以需要在類DblCell中定義一個類型轉換運算符:operator StrCell(); 它的作用就是把DblCell轉換為StrCell,這個函數是成員函數,不需要參數,也不需要在函數聲明時顯式寫出返回值,當然該函數仍然要返回一個值。

有了這個運算符後,編譯會對StrCell sc = dc + dc;做擴展:
1. 生成臨時變數var1保存dc + dc的結果。
2. 調用var1.StrCell()這個運算符函數把var1轉換為類型StrCell,運算符函數的返回值將成為一個臨時變數var2。
3. 調用sc的構造函數,並傳入var2。
4. 結束。

Ⅲ 如何調用微軟編譯器

你的意思是在命令行使用么?

我講不明白 ,你自己看吧 我網上找的

微軟C/C++編譯器命令行模式用法

微軟C/C++編譯器編譯選項數目眾多,在「命令提示符」窗口鍵入cl /?即可查看完整列表
(見附錄1)。比如說,/GX啟用C++異常處理機制,/GR啟用C++ RTTI,等等。在此不打算
詳細討論這些編譯選項用法。

以下是我的測試目錄f:\vstest中的一個樣例文件:

//1.cpp

#include <iostream>

using namespace std;

void main()

{

cout << "Hello Royal"<<endl;

}

你現在可以進入該目錄執行如下編譯命令:

F:\vstest>cl /GX 1.cpp

運行程序,即會產生如下輸出:

Hello Royal

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

如何在編譯器(vs2008)里設置調用別人寫好的lib和dll如何在編譯器(vs2008)里設置調用別人寫好的lib和dll步驟:1.Tools->options->projectsandsolutions->VC++directories分別在包含文件,庫文件填加了路徑(這些路徑只告訴編譯器怎麼找文件,沒有說把那裡面的文件加入工程.)(若不設置,編譯報錯:無法打開***文件)2.Project->properties->c/c++->general->additionalincludedirectories添加包含文件Project->properties->linker->general->additionallibrarydirectories添加庫文件Project->properties->linker->input->添加用到的lib(這一步也可以在代碼中顯示調用#pragmacomment(lib,"***.lib"))(若不添加,連接報錯:無法解析的外部符號)3.將dll文件拷貝到工程debug文件下(如果不拷貝,編譯鏈接不報錯,運行報錯:無法找到***.dll)切記第三條,讓老子排查了一上午,當然最好把所有輸出目錄定位到一個文件下面。附:DLL與LIB文件的區別共有兩種庫:一種是LIB包含了函數所在的DLL文件和文件中函數位置的信息(入口),代碼由運行時載入在進程空間中的DLL提供,稱為動態鏈接庫dynamiclinklibrary。一種是LIB包含函數代碼本身,在編譯時直接將代碼加入程序當中,稱為靜態鏈接庫staticlinklibrary。共有兩種鏈接方式:動態鏈接使用動態鏈接庫,允許可執行模塊(.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文件,可以用WIN32API函數LoadLibrary、GetProcAddress裝載。使用lib需注意兩個文件:(1).h頭文件,包含lib中說明輸出的類或符號原型或數據結構。應用程序調用lib時,需要將該文件包含入應用程序的源文件中。(2).LIB文件,略。使用dll需注意三個文件:(1).h頭文件,包含dll中說明輸出的類或符號原型或數據結構的.h文件。應用程序調用dll時,需要將該文件包含入應用程序的源文件中。(2).LIB文件,是dll在編譯、鏈接成功之後生成的文件,作用是當其他應用程序調用dll時,需要將該文件引入應用程序,否則產生錯誤。如果不想用lib文件或者沒有lib文件,可以用WIN32API函數LoadLibrary、GetProcAddress裝載。(3).dll文件,真正的可執行文件,開發成功後的應用程序在發布時,只需要有.exe文件和.dll文件,並不需要.lib文件和.h頭文件

Ⅳ 一直有個疑惑,C/C++編譯器是如何調用函數的

同上,比如show函數,在C++中,編譯器會給它加上一些限定符,類似A_void_show(),當然也可能有形參的類型等等,通過這種方式識別。

java 調用編譯器

根本就不知道你要做什麼,腦子里一片混亂。
eclipse不是編譯器,那個叫集成開發環境(IDE)。
如果你的程序是java程序,直接調用內建的com.sun.tools.javac.*就可以。
如果你要做編譯器,可能還要學個幾年。
---------------------------------------------
你要做的事情我明白了,不過要運行java程序還是比較麻煩的。
這個裡面有些代碼的例子:
http://www.rgagnon.com/javadetails/java-0014.html
不過實際上能夠考慮比較多的情況的代碼大約需要上萬行。我做了好幾年還是沒有完全完成。

Ⅶ vs作為外部編譯器實現和cvi程序之間的調用

這兩個庫文件中包含了在CVI內核中定義的庫函數信息。
2. 如果您需要添加一些與硬體相關的函數庫,比如說DAQ、VXI等,您需要在cvi\extlib目錄下查找相關的函數庫,並把他們包含進來(比如dataacq.lib和nivxi.lib)。
3. 如果外部編譯環境需要以WinMain為程序切入點開始執行,您還需要包含cviwmain.lib函數庫。
5. 如果您是在其他的編譯器下編輯CVI前面板事件的回調函數,您需要在CVI中的Build菜單下選擇External Compiler Support來創建一個專用的回調函數的.obj文件。並且該文件必須被包含到外部編譯器的工程中。需要注意的是,如果您需要調用CVI編譯的靜態庫文件您同樣需要在您的工程中包含.obj文件或者.c文件。對於該種應用可以參考以下鏈接:
KnowledgaBase 2TDFEPSJ: I Get Error -86 When I Try to Use a Static Library Created in CVI. Why?6. 如果對於.obj文件和.llb文件使用了LoadExternalMole語句,您需要在您的程序中包含以下文件:refsym.obj(標准CVI庫)和/或arefsym.obj(標准C)。這些文件只是在程序運行時被載入。
7. 如果您有以下某種功能的函數:1) 調用.uir文件中的定義; 或者 2) 使用LoadExternalMole語句調用.obj/.lib文件中的定義。那麼在外部編譯器中您需要調用InitCVIRTE 函數,如果您使用了DLLMain函數,那麼您還需要調用CloseCVIRTE 函數。

閱讀全文

與編譯器調用相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163