WinCE 中的Dirs檔案和Sources檔案

2021-04-21 13:20:53 字數 2970 閱讀 3494

1.dirs檔案

關於dirs檔案,就是指定要編譯的路徑,這個地球人都知道。還是簡單介紹一下。按照文件上面介紹有三種定義:dirs,dirs_ce和optional_dirs。

dirs:就是指定要編譯的目錄。

dirs_ce:只有目錄下的源**用於wince的映像檔案時,才編譯該目錄。

optional_dirs:指定可以選擇編譯的目錄。比如:optional_dirs=proj1,如果想編譯proj1目錄,可以設定build_options=proj1,然後執行build命令就可以了。

舉個例子:

dirs= common /

drivers /

oal /

bootloader

表示需要編譯common,drivers,oal和bootloader目錄。  

dirs=*

表示編譯當前的所有目錄。

2. sources檔案

在wince bsp中會看到很多sources檔案,一般會和源**放在同乙個目錄,當然不是絕對的。這些sources檔案裡面就是定義了一些巨集,主要用於告訴build.exe在編譯源**的時候應該如何編譯和鏈結,告訴nmake.exe如何編譯源**以及最後生成什麼型別的檔案。

下面具體介紹一下:

targetname:最後編譯完後生成的目標檔案的名字,不包括副檔名。

targettype:生成的檔案的型別。具體值如下:

library,乙個.lib檔案

dynlink,乙個.dll檔案

program,乙個.exe檔案

releasetype:該巨集設定兩個環境變數releasedir和releaselibdir,就是設定編譯後生成檔案存放的路徑。具體值如下:

platform,生成的檔案在platform//

local,生成的檔案在當前路徑下

custom,生成的檔案在targetpath指定的位置

managed,生成的檔案在%_projectroot%/oak//managed

oak, sdk, ddk,生成的檔案在%_projectroot%/oak/

targetpath:當上面的releasetype=custom的時候,該巨集指定路徑

sourcelibs:靜態鏈結。函式的實體被鏈結過來,生成乙份拷貝

targetlibs:動態鏈結。函式的位址被鏈結過來,系統執行時會載入該庫

includes:指定額外的要搜尋的標頭檔案的路徑

sources:指定要被編譯的檔案

adefines:指定彙編器要使用的引數

cdefines:指定編譯器要使用的引數

ldefines:指定聯結器要使用的引數

rdefines:指定資源編譯器rc.exe的引數

dllentry:指定dll的入口函式

deffile:指定該模組的.def檔案

exeentry:指定可執行檔案的入口函式

skipbuild:不做實際的build操作,直接返回成功

wincecod:編譯後生成乙個.cod的彙編檔案,用於檢視彙編**除錯

wincecpu:用於說明為指定的cpu編譯,這樣被編譯出來的目標檔案會被放在_tgtcpu環境變數所指定的子目錄下面,一般該巨集在sources.cmn中定義。

wincemap:編譯後生成乙個.map檔案,用於除錯

winceoem:設定該值表示需要使用wince下的一些公用的庫和標頭檔案,該值一般在bsp中的sources.cmn中定義。

wincetargetfile0:用於告訴編譯系統在編譯當前路徑下的原始碼檔案之前,要先由build.exe編譯的目標檔案。

wincetargetfiles:用於告訴編譯系統在鏈結當前路徑下所有的目標檔案之前,要先由build.exe編譯的目標檔案。

wince_override_cflags:用於定義使用者自己的編譯器引數取代預設的編譯器引數。

舉個例子:

targetname=serial_smdk2410

targettype=dynlink

releasetype=platform

targetlibs=$(_commonsdkroot)/lib/$(_cpuindpath)/coredll.lib /

$(_sysgenoakroot)/lib/$(_cpuindpath)/ceddk.lib

sourcelibs=$(_sysgenoakroot)/lib/$(_cpuindpath)/serpddcm.lib /

$(_sysgenoakroot)/lib/$(_cpuindpath)/com_mdd2.lib

deffile=serial.def

dllentry=_dllentrycrtstartup

sources= ser_smdk2410.cpp /

pdds3c2410_ser.cpp

需要編譯的檔案為ser_smdk2410.cpp和pdds3c2410_ser.cpp,def檔案為serial.def,dll的入口函式是_dllentrycrtstartup,靜態連線serpddcm.lib和com_mdd2.lib兩個庫,動態鏈結coredll.lib和ceddk.lib兩個庫,最終編譯為dll檔案,檔名為serial_smdk2410.dll。

最後總結一下,dirs檔案會和sources檔案配合使用,但是他們不可能存在同乙個目錄下面。dirs檔案指定編譯目錄,sources檔案指定如何編譯。

wince 中的Dirs檔案和Source檔案

a dirs檔案 關於dirs檔案,就是指定要編譯的路徑,這個地球人都知道。還是簡單介紹一下。按照文件上面介紹有三種定義 dirs,dirs ce和optional dirs。dirs 就是指定要編譯的目錄。dirs ce 只有目錄下的源 用於wince的映像檔案時,才編譯該目錄。optional ...

WinCE中的檔案系統檔案

檔案系統檔案 dat 定義了在目標裝置初始化時設定的檔案和資料夾的位置,當目標裝置冷啟動時,filesys.exe將會使用這些檔案系統檔案在記憶體中來建立資料夾,鏈結和檔案等。通過修改project.dat檔案中資料夾和檔案位置的定義,你可以定義任何除了windows資料夾以外的根資料夾,另外,你還...

彙編檔案 s和 S的區別

s 組合語言源程式 操作 彙編 s組合語言源程式 操作 預處理 彙編 1.小寫的 s檔案,在後期階段不會再進行預處理操作了,所以我們不能在其內寫上預處理語句。一般是 c 檔案經過彙編器處理後的輸出。如 gcc 編譯器就可以指定 s 選項進行輸出,且是經過預處理器處理後 的了。2.大寫的 s 檔案,還...