日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

轻量级单元测试Cmockery源码学习 第一章

發(fā)布時(shí)間:2023/12/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 轻量级单元测试Cmockery源码学习 第一章 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Cmockery學(xué)習(xí)記錄

跑起來(lái)

在c_cpp_properties.json把庫(kù)文件路勁添加到incudePath中仍然顯示

問(wèn)題描述

問(wèn)題分析

  • vscode中c_cpp_properties.json的"includePath"只是告訴vscode插件在哪里找到頭文件,便于進(jìn)行源碼查看和debug,并沒(méi)有告訴gcc編譯器這個(gè)路徑。所以編輯器看起來(lái)沒(méi)有錯(cuò)誤但是gcc編譯器找不到新增的"includePath"。

解決方案

  • 添加Cmockery庫(kù)的路徑到編譯參數(shù)"args".(tasks.json)
  • “Ctrl+Shift+B”運(yùn)行.c文件

聯(lián)想

  • Ctrl+Shift+B和run code有什么區(qū)別?
  • #include <>格式:引用標(biāo)準(zhǔn)庫(kù)頭文件,編譯器從標(biāo)準(zhǔn)庫(kù)目錄開(kāi)始搜索;
  • #include ""格式:引用非標(biāo)準(zhǔn)庫(kù)的頭文件,編譯器從用戶的工作目錄開(kāi)始搜索.

undefined reference to _run_tests

問(wèn)題描述

問(wèn)題分析

  • undefined reference to _run_tests,轉(zhuǎn)到cmockery.h查看發(fā)現(xiàn)只有對(duì) _run_tests的聲明而沒(méi)有定義

解決方案

  • args加入cmockery.c文件

聯(lián)想

  • 平常我們用的string.h、iostream.h文件里是只有聲明沒(méi)有定義嗎?

仍然報(bào)錯(cuò)

問(wèn)題描述

Building

看官方文檔發(fā)現(xiàn),要想用Cmockery library and example applications必須先nmake windows文件夾下的makefile文件

在Building過(guò)程中遇到的問(wèn)題和學(xué)到的

  • 找不到namke

windows系統(tǒng)下nmake是vs下的,這樣理解不知道對(duì)不對(duì),還好我電腦裝了vs2019,把nmake的路徑添加到環(huán)境變量path里就可以

  • 找不到頭文件"malloc.h"

新發(fā)現(xiàn)一個(gè)查找文件工具"Everything",查找到malloc是在windows kit文件夾下,把路徑添加到環(huán)境變量path里,仍然報(bào)找不到頭文件,最終發(fā)現(xiàn)是要在環(huán)境變量新建一個(gè)INCLUDE,然后添加路徑,這是cl查找頭文件的規(guī)則把可能。

  • 找不到頭文件"windows.h"

開(kāi)始查找windos.h發(fā)現(xiàn)在mingw下,添加進(jìn)環(huán)境變量INCLUDE報(bào)錯(cuò) No Target Architecture,搜索一下發(fā)現(xiàn)解決不了,最后覺(jué)得可能是mingw下的windos.h和我們需要的不一樣,windows kit下有一個(gè)Windos.h,試了一下發(fā)現(xiàn)是這個(gè),學(xué)到了windos系統(tǒng)文件不區(qū)分大小寫(xiě)。

  • 成功截圖

.lib文件

.lib文件怎么用

  • 費(fèi)勁千辛萬(wàn)苦終于nmake了makefile文件,生成了一個(gè)cmockery.lib文件,按照我近兩天的理解,這個(gè)靜態(tài)庫(kù)文件里面封裝了cmockery函數(shù)的定義,測(cè)試的時(shí)候只需要使用它就可以了,那么怎么用呢? 編譯的時(shí)候用-L鏈接靜態(tài)庫(kù)路徑就行了呀,為什么會(huì)報(bào)錯(cuò)

  • hhhhhh我悟了,.cpp的測(cè)試文件不可以運(yùn)行,.c文件就可以了,為什么為什么為什么,c++不是兼容c嗎。

[淺談C、C++及其區(qū)別、兼容與不兼容]()

  • 然而對(duì)于學(xué)習(xí)源碼來(lái)說(shuō),生成的.lib文件似乎沒(méi)什么luan用。

跑起來(lái)最終章

  • 目錄結(jié)構(gòu)如下,插件C/C++ Project Generator自動(dòng)生成。

  • 成功截圖

總結(jié)

以上是生活随笔為你收集整理的轻量级单元测试Cmockery源码学习 第一章的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。