編譯的方式有
㈠ C++作出的程序,怎麼在一個沒有C++編譯器上運行
編完程序,選擇:
(1)任務欄「組建」
(2)「移除工程配置」
(3)選擇「win32 Release」,並確定
(4)Ctrl+F5運行以下程序
OK了,把Release文件夾下面的exe文件拷貝出來,就能到處用啦
㈡ c語言編寫好代碼後,怎麼編譯,最後生成可執行文件
材料/工具:vc6.0
1、打開c語言編輯工具,在工具中寫入程序的源代碼。
㈢ 計算機處理高級語言源程序有那些方式
計算機處理高級語言源程序有兩種方式:解釋方式和編譯方式。
解釋方式:對源程序的語句翻譯一條為目標代碼後,執行一條,不生成完整的目標程序。
編譯方式:將源程序全部翻譯為目標代碼生成完整的目標程序後再執行。
㈣ 命令行編譯qt程序 有幾種方式
一、環境配置
1
要想使用Qt進行命令行編譯,環境配置是必不可少的一步。環境配置好以後,我們才能使用相應的qmake,nmake等命令,並且鏈接到編譯程序時所需要的頭文件和庫文件。
小提示:為了幫助大家解決環境配置的問題,新版Qt已經自帶了相應的批處理文件,我們只要在編譯前執行對應的批處理文件即可。
2
首先,我們在命令行編譯時需要運行qmake.exe,因此我們需要將該文件的路徑添加到PATH變數中。要想做到這一點,我們只需要執行Qt安裝目錄下的
Qt5.5.1\5.5\msvc2013\bin\qtenv2.bat 批處理即可。
3
其次,在編譯過程中,我們還需要用到nmake命令,並且鏈接相應的頭文件和庫文件,以生成最終的可執行程序。要想做到這一點,我們只需要執行VS安裝目錄下的
D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat批處理即可。
注意:由於我安裝的是Qt for VS2013 32位版,所以運行的是vcvars32.bat,如果你安裝的是64位版,請運行vcvars64.bat。
4
至此,環境配置就大功告成了。關於這個環境配置,需要特別指出的是,這個配置是臨時性的,只在當前命令行窗口有效;也就是說,你關閉命令行窗口後,均需要重新運行相應的批處理文件。
END
二、命令行編譯
首先,將以上兩個批處理文件復制到要編譯的工程目錄中。
然後,點擊菜單「文件」-「打開命令提示符」,在該目錄下打開命令行窗口。
執行批處理文件qtenv2.bat。注意,由於該批處理會跳轉到Qt安裝目錄,我們執行完畢後需要回到我們的當前目錄(我這里由於Qt安裝目錄與當前目錄不在同一個磁碟,只要切換磁碟便回到當前目錄了)。
執行批處理文件vcvars32.bat。
下面,正式開始編譯。首先,生成工程文件。鍵入命令:
qmake -project
說明:生成的工程文件名會與你當前的目錄名同名。例如,我當前的目錄名為test,生成的工程名則為test.pro。
接著,輸入qmake test.pro,生成相應的Makefile文件。
最後,鍵入nmake,生成最終的可執行文件。
㈤ 「編譯方式」和「解釋方式」的區別是什麼
程序員編寫的程序現在一般都是用高級語言編寫的,如c/c++ 以及面向對象的visual 系列;這樣編寫的程序計算機是不能直接執行的,因為計算機只能執行二進製程序。因此要經過一個源程序代碼翻譯成二進制的過程。計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過「翻譯程序」翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種「翻譯」通常有兩種方式,即編譯方式和解釋方式。
兩者的區別如下:
解釋方式:程序運行時,取一條指令,將其轉化為機器指令,再執行這條機器指令。這種方式每次運行程序時都要重新翻譯整個程序,效率較低,執行速度慢,如QB,不過現在很少再用這種低效的方式的設計語言了。
編譯方式:程序運行時之前,將程序的所有代碼編譯為機器代碼,再運行這個程序。然後每次執行的時候就可以直接執行這個翻譯好的二進制文件了,這樣的程序只需要翻譯一次,效率明顯要高很多,現在的大多數語言都是這種方式,網頁中的asp.net 採用的也是這種方式。
簡單的說,編譯就是全文翻譯,全部翻譯完才執行。解釋就相當於同聲翻譯,邊翻譯邊執行。
㈥ C語言中條件編譯有哪幾種形式
預處理程序提供了條件編譯的功能。 可以按不同的條件去編譯
不同的程序部分,因而產生不同的目標代碼文件。 這對於程序的移
植和調試是很有用的。
條件編譯有三種形式,下面分別介紹:
1. 第一種形式:
#ifdef 標識符
程序段1
#else
程序段2
#endif
它的功能是,如果標識符已被 #define命令定義過則對程序段1
進行編譯;否則對程序段2進行編譯。
如果沒有程序段2(它為空),本格式中的#else可以沒有, 即可
以寫為:
#ifdef 標識符
程序段
#endif
#define NUM ok
main(){
struct stu
{
int num;
char *name;
char sex;
float score;
} *ps;
ps=(struct stu*)malloc(sizeof(struct stu));
ps->num=102;
ps->name="Zhang ping";
ps->sex='M';
ps->score=62.5;
#ifdef NUM
printf("Number=%d\nScore=%f\n",ps->num,ps->score);
#else
printf("Name=%s\nSex=%c\n",ps->name,ps->sex);
#endif
free(ps);
}
由於在程序的第16行插入了條件編譯預處理命令, 因此要根據
NUM是否被定義過來決定編譯那一個printf語句。而在程序的第一行
已對NUM作過宏定義,因此應對第一個printf語句作編譯故運行結果
是輸出了學號和成績。
在程序的第一行宏定義中,定義NUM表示字元串OK,其實也可以
為任何字元串,甚至不給出任何字元串,寫為:
#define NUM
也具有同樣的意義。 只有取消程序的第一行才會去編譯第二個
printf語句。讀者可上機試作。
2. 第二種形式:
#ifndef 標識符
程序段1
#else
程序段2
#endif
與第一種形式的區別是將「ifdef」改為「ifndef」。它的功能
是,如果標識符未被#define命令定義過則對程序段1進行編譯, 否
則對程序段2進行編譯。這與第一種形式的功能正相反。
3. 第三種形式:
#if 常量表達式
程序段1
#else
程序段2
#endif
它的功能是,如常量表達式的值為真(非0),則對程序段1 進行
編譯,否則對程序段2進行編譯。因此可以使程序在不同條件下,完
成不同的功能。
#define R 1
main(){
float c,r,s;
printf ("input a number: ");
scanf("%f",&c);
#if R
r=3.14159*c*c;
printf("area of round is: %f\n",r);
#else
s=c*c;
printf("area of square is: %f\n",s);
#endif
}
本例中採用了第三種形式的條件編譯。在程序第一行宏定義中,
定義R為1,因此在條件編譯時,常量表達式的值為真, 故計算並輸
出圓面積。
上面介紹的條件編譯當然也可以用條件語句來實現。 但是用條
件語句將會對整個源程序進行編譯,生成的目標代碼程序很長, 而
採用條件編譯,則根據條件只編譯其中的程序段1或程序段2, 生成
的目標程序較短。如果條件選擇的程序段很長, 採用條件編譯的方
法是十分必要的。
☆本章小結☆
1. 預處理功能是C語言特有的功能,它是在對源程序正式編譯前由
預處理程序完成的。程序員在程序中用預處理命令來調用這些功
能。
2. 宏定義是用一個標識符來表示一個字元串,這個字元串可以是常
量、變數或表達式。在宏調用中將用該字元串代換宏名。
3. 宏定義可以帶有參數,宏調用時是以實參代換形參。而不是「值
傳送」。
4. 為了避免宏代換時發生錯誤,宏定義中的字元串應加括弧,字元
串中出現的形式參數兩邊也應加括弧。
5. 文件包含是預處理的一個重要功能,它可用來把多個源文件連接
成一個源文件進行編譯,結果將生成一個目標文件。
6. 條件編譯允許只編譯源程序中滿足條件的程序段,使生成的目標
程序較短,從而減少了內存的開銷並提高了程序的效率。
7. 使用預處理功能便於程序的修改、閱讀、移植和調試,也便於實
現模塊化程序設計。