cmake添加c文件的方法 Mac下順手的C/C 開(kāi)發(fā)IDE是哪個(gè)?
Mac下順手的C/C 開(kāi)發(fā)IDE是哪個(gè)?CLion是目前macOS上最好就是帶的CIDE。肯定也可以不建議使用Sublimecmake插件的組合。如何在windows上編譯linux可用的動(dòng)態(tài)鏈接
Mac下順手的C/C 開(kāi)發(fā)IDE是哪個(gè)?
CLion是目前macOS上最好就是帶的CIDE??隙ㄒ部梢圆唤ㄗh使用Sublimecmake插件的組合。
如何在windows上編譯linux可用的動(dòng)態(tài)鏈接庫(kù)?
1、背景
最近的性能測(cè)試中,壓測(cè)的某些接口直接返回的數(shù)據(jù)是三個(gè)緊張的json格式的字符串,而現(xiàn)的接口中又必須把這個(gè)字符串修改后作為入?yún)?,自己去處理下?lái)比較好麻煩您。索性聽(tīng)到了把cjson代碼編譯成動(dòng)態(tài)鏈接庫(kù)在loadrunner的腳本中動(dòng)態(tài)創(chuàng)建。別外,而實(shí)際中壓測(cè)專(zhuān)用是作戰(zhàn)部署在linux上的負(fù)載機(jī),還是需要再代碼編譯一個(gè)linux上的動(dòng)態(tài)鏈接庫(kù)。那樣的話在調(diào)試時(shí)使用windows平臺(tái)的dll,而在壓測(cè)時(shí)在用linu臺(tái)的but。先附上我編譯器好的動(dòng)態(tài)鏈接庫(kù),可以真接在loadrunner中不使用
2、cjson
cjson是一個(gè)開(kāi)源的json庫(kù),它的優(yōu)勢(shì)在于全部用c實(shí)現(xiàn),并且適用性非常廣,用在loadrunner中都是完全無(wú)壓力。它的git主頁(yè)是。
3、windows平臺(tái)
然后打開(kāi)vsualstudio(我?guī)У氖莢s2015,其他版本也可以不,codeblock也絕對(duì)沒(méi)問(wèn)題,隨你比較喜歡),新建一個(gè)win32程序,程序類(lèi)型你選dll,只附加選項(xiàng)選擇類(lèi)型空項(xiàng)目。把cJSON.c和cJSON.h拖到工程里??梢栽O(shè)置程序編譯選項(xiàng)為release、x86(重要的是!),編譯。將編譯程序出去的cjson.dll放在loadrunner腳本的根目錄下,然后再在菜單File-Addfileneedscript,再添加cjson.dll。在代碼中程序加載cjson.dll,接著就也可以使用cjson的函數(shù)了。先嘗試看看,
123特別注意這里cjson_Version回的是指針,但loadrunner如果說(shuō)是int,因?yàn)橐@式轉(zhuǎn)成指針,不然的話編譯程序不通過(guò)。
一看cjson推導(dǎo)字符串的函數(shù)。它的用法追加:
12這里不需要用到cJSON.h中聲明的結(jié)構(gòu)體cJSON,但真接引用cJSON.h在loadrunner中程序編譯但。這個(gè)也有好的辦法,把cJSON.h中cJSON這個(gè)結(jié)構(gòu)體的定義代碼不能復(fù)制到action的頂部就可以了,如圖cJSON.h中其他的變量或者宏也是可以,要是程序編譯時(shí)報(bào)錯(cuò),復(fù)制上來(lái)就可以了。
4、Linu臺(tái)
下面再編譯器一個(gè)linu臺(tái)上的動(dòng)態(tài)鏈接庫(kù),用在linux負(fù)載機(jī)上。cjson的代碼中帶了MakeFile,也有cmake,也可以再編譯器。但如果linux系統(tǒng)是64位的,則設(shè)置成編譯的是64位的oh,no,不能被loadrunner程序加載,會(huì)提示“wrongELFclass:ELFCLASS64”。我們要手動(dòng)可以修改MakeFile,讓它程序編譯一個(gè)32位的oh,no。1.如何修改cJSON源碼根目錄下的MakeFile先打開(kāi)MakeFile,分別在29、31、93、96行,提升-m32,如圖2.在源碼根目錄下不能執(zhí)行
12假如又出現(xiàn)提示“fatalerror:sys/cdefs.h:oh,nosuchfile有.directory”,必須再裝一個(gè)感情依賴(lài)庫(kù)
123.程序編譯順利后,會(huì)得到名為的動(dòng)態(tài)鏈接庫(kù)。把它復(fù)制到loadrunner腳本的根目錄下,則是菜單File-Addfilecanscript,增加到腳本中。4.在腳本中運(yùn)行程序yeah,這步和windows上是差不多的。那樣腳本就可以在linux下運(yùn)行了。linux上按裝負(fù)載機(jī)也可以做個(gè)參考我的另一篇文章。
125、遺留問(wèn)題
結(jié)果有個(gè)遺留問(wèn)題,loadrunner隱隱不支持什么平臺(tái)宏,我想用宏完全控制,在windows下讀取dll,linux下讀取so,但是沒(méi)有找到解決方法。