#include <os_core.c> #include <os_flag.c> #include <os_mbox.c> #include <os_mem.c> #include <os_mutex.c> #include <os_q.c> #include <os_sem.c> #include <os_task.c> #include <os_time.c> #include <os_tmr.c>
以前,我將ucos_ii.c與上面的os_core.c等都添加到工程編譯,出現許多「重複定義」的錯誤。以後,將os_core.c等文件都從工程中移除,只保留ucos_ii.c,則編譯經過! 測試
咱們知道,經過#include "*.h"能夠引用其它源文件中導出的符號,而經過使用#include "*.c"文件能夠控制要將哪些源文件編譯到工程中。 spa
好比,這裏若是不須要消息郵箱功能和互斥信號功能,則將對應的.c文件註釋便可,
設計
#include <os_core.c> #include <os_flag.c> //#include <os_mbox.c> #include <os_mem.c> //#include <os_mutex.c> #include <os_q.c> #include <os_sem.c> #include <os_task.c> #include <os_time.c> #include <os_tmr.c>
所以,在大型的項目中,若是咱們要測試不一樣的功能,能夠爲每一個功能創建一個.c類型的配置文件,在該配置文件中將須要編譯的功能.c文件#include進來就OK,而不用麻煩地在每次測試不一樣功能時都重複的把舊的功能文件刪除,再添加新的功能文件。 code
經過控制要編譯的文件,能夠減小最終生成代碼的代碼段長度,節省存儲空間。 編譯
許多程序設計人員沒有絲毫的節省存儲空間的概念,常常把與工程無關的文件包含到工程中。(慚愧~~~~(>_<)~~~~ ) 程序設計