命令列下編譯多個C/CPP檔案
上次我講了ms 的nmake命令來進行編譯多個cpp檔案。這次我想一步步的自己來,不再通過makefile的幫助。
首先注意以下幾點:
1、#include指令的機制就是講.h檔案中的內容複製到.cpp檔案中,所以你只需要編譯cpp檔案。h檔案只是一個陪襯。另外注意.h中的宣告語句一定要記得在最後加上分號表示結束,否則編譯程式會報錯。你可以把h檔案省去而直接加到cpp檔案中,但是在之後的每一個檔案中你就需要重寫該類或者函式的宣告。所以這也是h檔案存在的原因。
2、你可以通過cl -c命令來編譯類檔案,編譯成obj檔案後,你可以使用lib命令將其編譯為lib檔案。然後使用link命令連線多個obj檔案。預設生成的可執行檔案的名稱是命令中第一個obj檔案的名稱。
看我的例子
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include<iostream>
class A{
public:
int a;
int b;
void say();
};
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
class A{
public:
int a;
int b;
void say();
};
*/
#include "A.h"
void A::say(){
a = b;
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//#include<iostream>
#include "A.h"
using namespace std;
int main(){
A a;
a.a = 0;
a.b = 9;
a.say();
cout<<a.a<<" "<<a.b<<endl;
}
這裡有一個問題我想強調一下。很多同學可能多#include的多重包含不在意。其實#include只是一個複製機制。你可以在A的h檔案中直接把iostream給包含了,那麼在main中你就沒有必要再去包含一次。這或許是很多同學不在意的吧。
相關文章
- gcc編譯cpp檔案GC編譯
- 【C語言】linux下多檔案編譯C語言Linux編譯
- windows 下編譯c檔案Windows編譯
- c語言多檔案編譯C語言編譯
- Linux下使用make命令編譯c原始檔Linux編譯
- 用idl2cpp.exe編譯idl 檔案[C++ Builder] (轉)編譯C++UI
- 配置C#命令列編譯器C#命令列編譯
- 如何配置vscode外掛code runner編譯多個*.c檔案VSCode編譯
- clion執行單個c和c++檔案(.c.cpp)C++
- gcc 編譯多個原始檔GC編譯
- 命令列模式下編譯ActionScript3命令列模式編譯
- 在命令列下使用vs的編譯器命令列編譯
- JNI命令列下編譯錯誤解決方案命令列編譯
- 如何用在命令列下使用VS編譯器命令列編譯
- C++ 預編譯標頭檔案C++編譯
- Linux下c mysql程式的編譯命令(轉)LinuxMySql編譯
- [java]javap命令列反編譯Java命令列編譯
- 檢視編譯C程式中間檔案編譯C程式
- ildasm、ilasm修改、反編譯 已經編譯的 dll檔案(c#)LDAASM編譯C#
- cmake混編.c和.cpp需要注意的地方--指定兩種編譯器編譯
- 在命令列中使用 msbuild 定義多個編譯條件 DefineConstants 時出錯命令列UI編譯
- 關於C++&Java中命令列編譯的問題 (轉)C++Java命令列編譯
- C編譯: 動態連線庫 (.so檔案)編譯
- windows 下c++編譯WindowsC++編譯
- CPP編譯器安裝(Windows環境)編譯Windows
- c# 讀取多個路徑檔案到一個檔案
- Linux命令技巧:如何在Linux下重新命名多個檔案Linux
- 命令列呼叫bat檔案命令列BAT
- 命令列生成jar檔案命令列JAR
- 如何將一個Java檔案編譯成classJava編譯
- Windows下搭建Android NDK開發環境及命令列編譯WindowsAndroid開發環境命令列編譯
- 條件編譯、多檔案程式設計、結構體編譯程式設計結構體
- 良許 | 從命令列同時移動多個檔案型別的小技巧命令列型別
- Linux命令列下載檔案和安裝RARLinux命令列
- linux 下MySQL命令列匯出csv檔案格式LinuxMySql命令列
- 如何在命令列中使用 ftp 命令上傳和下載檔案命令列FTP
- 使用C++(I386+)編譯一個純二進位制檔案 (轉)C++編譯
- Typescript安裝及編譯《CMD命令列方法》TypeScript編譯命令列