專案名稱
蘇嵌實訓-嵌入式 linux c 第2天
今日進度以及任務
了解了些許c語言編譯器的相關知識;學習了gdb和make的使用
本日任務完成情況
完成情況良好
本日開發**現的問題彙總:
無本日未解決問題:
無本日開發收穫:
複習了c語言有關知識,溫習了linux操作指令
1、編譯器**優化分別優化了哪些?
①、第一級:**調整
**調整是一種區域性的思維方式;基本上不觸及演算法層級;它面向的是**,而不是問題; 所以:語句調整,用彙編重寫、指令調整、換一種語言實現、換乙個編譯器、迴圈展開、引數傳遞優化等都屬於這一級;
②、第二級:新的視角
新的視角強調的重點是針對問題的演算法;即選擇和構造適合於問題的演算法;(氣泡排序還是快排的選擇問題是這一級早就應該完成的)很多經典演算法都對問題作了一些假設(包括我們當前已經完成的演算法實現),而在面對實際問題時「新的視角」提示我們應該重新檢視這些假設,並嘗試不同的思考問題的角度,尋求適合於問題的新演算法;
③、第**:表驅動狀態機
將問題抽象為另一種等價的數學模型或假想機器模型,比如構造出某種表驅動狀態機;這一級其實是第二級的延伸,只是產生的效果更加明顯,但它有其本身的特點(任何演算法和優化活動都可以看作是他的投影);
2、總結gcc靜態庫和動態庫的製作;
靜態庫製作:
gcc -c src/add.c -o add.o //製作obj檔案
ar -crv lib/libadd.a add.o //製作歸檔檔案
gcc src/main.c -llib -ladd -o main //加上l(指明鏈結目錄) l(指明鏈結庫名)
動態庫製作(.so):
gcc -shared -fpic -o lib/libadd.so src/add.c
或者 gcc -fpic -c src/add.c
gcc -shared -o libadd.so add.o
3、總結cmake用法;
1、cmake_minimum_required(version 2.8)2、project (hello)3、add_executable(hello hello.c)4、cmake_minimum_required(version 2.8)5、project (hello)6、include_directories(inc)7、set(sources src/hello.c)8、#file(glob sources 「src/*.c」)9、add_executable(hello $)
物聯網工程實訓 第6天
專案名稱 蘇嵌實訓 嵌入式linux 第6天 今日進度及任務 函式 記憶體管理 關鍵字 復合結構型別 任務完成情況 已完成開發 現的問題彙總 無未解決問題 無本日開發收穫 字串相關概念及用法 使用傳入引數來讓函式返回多個值 關鍵字的相關知識及用法 1 free是如何知道釋放多大記憶體的空間?系統在分...
物聯網蘇嵌實訓第7天
專案名稱 蘇嵌實訓 嵌入式 linuxc第7天 今日進度及任務 今天上午教的是linux環境下的檔案程式設計,下午教的是linux中多程序程式設計,以及執行緒的一些操作 本日任務完成情況 今天的任務雖然不多,但是對我來說難度還是挺大的,因為感覺理解起來還不很透徹。相比於上學期的c語言,因為體系比較完...
物聯網工程實訓部落格day 3
今日學習總結 專案名稱 蘇嵌實訓 嵌入式 linuxc 第 2 天 今日進度以及任務 c語言回顧,回顧總結 本日任務完成情況 詳細說明本日任務是否按計畫完成,開發的 量 課後布置題目完成,作業完成。本日開發 現的問題彙總 1.對於左右法則解決複雜的指標宣告 2.i,i 部分計算 3.各資料型別輸入快...