關於專案中的一記錄和心得

2021-08-16 20:47:19 字數 1145 閱讀 5328

1.全域性變數和全域性函式的使用:

當乙個專案中兩個檔案a.cpp,b.cpp之間沒有存在必然的聯絡,a.cpp中需要獲取b.cpp中定義的一些資料內容,可以通過使用全域性變數來實現這個功能。比如在專案車輛二次識別中,在輸入解析時需要獲取批量輸入時的的id(std::string),然後將其放入容器vector中,在b.cpp中需要獲取id,並加以整合輸出組裝json,但是b.cpp和a.cpp之間沒有繼承關係,也不存在友元關係,並且框架已經搭好,只能通過全域性變數和函式來實現。

在a.cpp中定義全域性變數 std::vectorvecimageid; 在b.cpp中使用extern std::vectorvecimageid; 

這樣就可以解決編譯的時候double define的問題。

2.當鏈結的時候報 ld return 1的錯誤時,多半是鏈結器在庫路徑中找不到庫檔案,或者在專案配置的時候出現問題。

首先得確保庫檔案已經存在,並且庫檔案的路徑正確包含,並且已經新增庫檔案。已vs2017中新增curl庫為例

庫的路徑:

保證庫的附加庫目錄中存在所需要的庫檔案。

接下來配置環境變數通過配置是export ld_library_path=/home/kiseeto/imageobjectextractionservice/lib

3.關於記憶體使用的問題:

a.一般在c/c++專案中經常要是用自己動態分配的記憶體。

clss a;

a* pa = new a();

對於指標pa來說不能做位址的便宜,如果需要對pa來做位址偏移可以來找到乙個替身,對pa做拷貝,讓替身做指標的偏移工作,否則在釋放pa所指向的記憶體空間,會報錯。

b.要做到動態記憶體分配以後,並且賦值也使用完畢,並且資料處理也完畢以後,要做到隨即釋放記憶體空間。

比如在車輛二次識別的專案中,當輸入解析完成以後,經過sdk演算法以後會生成乙個json的字串,然後將字串解析,在解析過程中會涉及到動態記憶體的分配,解析完成以後需要將資料重新組裝成新的json字串。組裝完成以後需要對動態分配的記憶體及時的釋放。

專案中的問題記錄

開發團隊有一些問題,先寫些,想到什麼以後再加 1.需求理解不統一,有的人明白了,有的人還不明白,而有的人呢自以為明白了其實明白錯了。2.理解需求之後提出設計,有人提出,沒人反對,其實不一定表示都理解了,也保不齊有人理解錯位。3.設計完畢,開始編碼,以為自己正在如期進行著工作,也保不齊想得不夠全面到時...

專案中用到mobiscroll的一些心得

我所負責的專案要求的效果是 1.顯示的日期格式是2017 11 20 星期一 2.初始化的預設值是後台傳過來的乙個日期值,後台傳過來的是昨日日期值 3.最大日期值也是這個日期,即只能選擇昨日以前的日期 4.這篇部落格的最後,給大家附帶說下只顯示年月的實現方法 1.效果1 顯示的日期格式是2017 1...

軟體測試作業一 記錄我遇到的專案error

當老師把這個作業的ppt展示出來的時候,我第一眼想到的就是前幾頁說的 fault error failture 之間的區別 我個人理解如下 fault的定義 導致系統功能失常的語句組合 error的定義 系統執行導致系統功能失常的語句,可能導致系統出現錯誤結果的中間狀態 failture的定義 系統...