開新專案
製作大型專案時, 可開啟專案. 而Dev C++ 的專案製作, 也可分離出函數庫檔, 供日後其他專案使用
首先選取檔案/開新檔案/專案, 本例使用Console Application進行說明, 請將名稱改為 Project1, 然後儲存位置請開啟一個新目錄容納所有的檔案.
緊接著在左邊的專案總管中, 選取 Project1按右鍵, 選取new File, 並存為 sdk.cpp. 然後再開啟一個 new File, 存成sdk.h. 此 .h檔案名不一定要跟.cpp同檔案名. 但為了日後管理, 還是建議使用同檔名.
檔案佈局
下面的程式碼說明了如何產生 0<=random()<1之間的亂數.
需注意的是 sdk_random()中使用了 static 變數, 如果是第一次調用, 就種下種子. 如果不是第一次調用, 就無需重新種下種子.
另在main.cpp中, 需 include “sdk.h”. sdk.h是自訂標頭檔, 所以需使用 “”雙引號包含. 如果是系統預設標頭檔, 則使用 <>包含. 此法則在Linux 版本亦同.
不過就算是系統預設標頭檔, 使用 “” 也可以
sdk.cpp如下
#include <math.h> #include <stdlib.h> #include <time.h> float sdk_pow(float x, float y){ return pow(x, y); } float sdk_random(){ static int first=0; first++; if(first==1) srand(time(NULL)); return rand()/32768.0f; }
sdk.h如下
float sdk_pow(float, float); float sdk_random();
main.cpp如下
#include "sdk.h"
#include <iostream>
int main(int argc, char** argv) {
for (int i=0;i<100;i++){
float r=sdk_random();
printf("%f\n", r);
}
return 0;
}
結果如下
0.052917 0.408173 0.284393 0.290314 0.487457 0.395355 0.241516 0.289825 0.995239 0.995605 請按任意鍵繼續 . . . -------------------------------- Process exited after 8.261 seconds with return value 0 請按任意鍵繼續 . . .
Makefile
Makefile是 C++的編譯設定檔. 在Dev C++中命名為 Makefile.win. 其實Makefile是一個很複雜的設定檔, 有專門的一本書在介紹. 本例僅列出如下
# Project: Project1 # Makefile created by Dev-C++ 5.11 CPP = g++.exe CC = gcc.exe WINDRES = windres.exe OBJ = main.o sdk.o LINKOBJ = main.o sdk.o LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" BIN = Project1.exe CXXFLAGS = $(CXXINCS) CFLAGS = $(INCS) RM = rm.exe -f .PHONY: all all-before all-after clean clean-custom all: all-before $(BIN) all-after clean: clean-custom ${RM} $(OBJ) $(BIN) $(BIN): $(OBJ) $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS) main.o: main.cpp $(CPP) -c main.cpp -o main.o $(CXXFLAGS) sdk.o: sdk.cpp $(CPP) -c sdk.cpp -o sdk.o $(CXXFLAGS)
生成的檔案
編譯出來的檔案, 有main.o, sdk.o, project1.exe.