

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VS2012RTKLIBGNSS定位開源庫RTKLIB開源庫有著強(qiáng)的GPS數(shù)據(jù)實(shí)時(shí)和后處理功能,由于筆者的畢業(yè)設(shè)計(jì)中需要對(duì)GPS載波相位觀測(cè)量進(jìn)RTK解算,故,對(duì)RTKLIB開源庫進(jìn)了學(xué)習(xí)與研究。RTKLIB提供了很多底層的函數(shù),筆者準(zhǔn)備直接對(duì)源碼進(jìn)編譯輸出標(biāo)準(zhǔn)DLL的式供C#調(diào)。所的VS平臺(tái)是VS2012(其它VS版本類似),RTKLIB庫的是上使的最多,相對(duì)穩(wěn)定的rtklib_2.4.2版本,編譯的項(xiàng)采“相對(duì)路徑”,即程可移植到任何地,便以后使。、RTKLIB簡(jiǎn)介RTKLIB是全球?qū)Ш叫l(wèi)星系統(tǒng)GNSS(globalnavigation satellite system)的標(biāo)準(zhǔn)&精密定位開源
2、程序包,RTKLIB由本東京海洋學(xué)(Tokyo Universityof Marine Science and Technology)的須知(TomojiTakasu)開發(fā)。RTKLIB由個(gè)便攜式程序庫和多個(gè)AP(應(yīng)程序)具庫組成。RTKLIB的主要功能有:(1)持多個(gè)GNSS系統(tǒng)的標(biāo)準(zhǔn)和精密定位算法,包括GPS,GLONASS,Beidou,Galileo,QZSS和SBAS(2)持多種GNSS實(shí)時(shí)和后處理定位模式:?jiǎn)吸c(diǎn)定位、DGPS/DGNSS,動(dòng)態(tài)RTK、靜態(tài)RTK、移動(dòng)基站、PPP(3)持多種GNSS標(biāo)準(zhǔn)格式和協(xié)議:RINEX2.10、RINEX2.11、RINEX2.12、RINEX
3、3.00、RINEX3.01、RINEX3.02、RTCM2.3、RTCM3.1、RTCM3.2、BINEX、PCV、EMS 2.0(4)持多種GNSS接收機(jī)專有數(shù)據(jù)協(xié)議格式:NovAtel:OEM4/V/6,OEM3,OEMStar、Superstar II、Hemisphere、Crescent、ublox:LEA-4T/5T/6T、SkyTraq、JAVAD 、GW10-II/III和NVS(5)持外部通信:Serial、TCP/IP、NTRIP、本地志件(記錄和播發(fā))和FTP/HTTP(6)提供許多函數(shù)庫和API(application program interfaces):衛(wèi)星和導(dǎo)
4、航系統(tǒng)函數(shù)、矩陣和向量函數(shù),時(shí)間和字符串函數(shù)、坐標(biāo)的轉(zhuǎn)換,輸和輸出函數(shù)、調(diào)試跟蹤函數(shù)、平臺(tái)依賴函數(shù)、定位模型、模型、天線模型、地球潮汐模型、地準(zhǔn)模型、基準(zhǔn)轉(zhuǎn)換、RINEX函數(shù)、星歷和時(shí)鐘函數(shù)、精密星歷和時(shí)鐘、接收機(jī)原始數(shù)據(jù)函數(shù)、RTCM函數(shù),解算函數(shù)、歌地球KML轉(zhuǎn)換、SBAS函數(shù)、選項(xiàng)(option)函數(shù)、流數(shù)據(jù)輸和輸出函數(shù)、整周模糊度解算、標(biāo)準(zhǔn)定位、精密定位、后處理定位(解算)、流服務(wù)器函數(shù)、RTK服務(wù)器函數(shù)、下載函數(shù)。、基于VS的RTKLIB編譯1.新建程。先,我們?cè)赩S2012下先新建個(gè)win32的dll項(xiàng)(空項(xiàng))Win32應(yīng)程序設(shè)置如下:2.復(fù)制庫件。把在github上下載的rtkl
5、ib2.4.2的所有件夾及件復(fù)制到剛剛建的RTKLIB程項(xiàng)件所在錄下,如圖RTKLIB開源庫(RTKLIB開源庫是C+Builder建的程,與VS不同)下件錄結(jié)構(gòu)及各件夾功能:app- APs構(gòu)建環(huán)境data- APs樣本數(shù)據(jù)lib -庫成環(huán)境bin-可執(zhí)進(jìn)制APs和windows鏈接庫doc-檔件src-RTKLIB庫的源程序util- 實(shí)程序具test-測(cè)試程序和數(shù)據(jù)然后我們刪掉的RTKLIB程錄下的兩個(gè)件(github開源項(xiàng)的配置件)其實(shí),由于我們現(xiàn)在只是為了編譯這個(gè)開源庫, RTKLIB開源庫中除“src件夾”其它的我們暫時(shí)都不到,但為了保持庫的完整性以及防以后做程會(huì)的到,此處都留下了
6、,做實(shí)際程應(yīng)的話,可以刪除其它不到的件夾。3.添加庫件。為了與庫件結(jié)構(gòu)保持致,我們先在“源件”件夾,右擊添加新建篩選器,接下來先添加頭件(在src件夾中,只有個(gè)頭件:rtklib.h),然后是源件添加現(xiàn)有項(xiàng)(添加除rtklib.h所有源件,)“rcv”件夾中添加“src/rcv”錄下的所有源件,添加完成之后,如圖:4.初步編譯?!敖鉀Q案管資源理器”下,右擊“RTKLIB”項(xiàng)成,進(jìn)編譯。因?yàn)镽TKLIB是在C+ Builder編譯器下寫的,但是我們現(xiàn)在VS進(jìn)編譯,會(huì)出現(xiàn)堆的錯(cuò)誤,現(xiàn)在我們就個(gè)個(gè)來解決。5.錯(cuò)誤類型1:error C4996:strncpy: This function or va
7、riable may beunsafe. Consider using strncpy_s instead. To disabledeprecation, use_CRT_SECURE_NO_WARNINGS. See online help for details.解決:這是由于函數(shù)安全性問題,編譯器已經(jīng)給出建議,添加預(yù)編譯指令【_CRT_SECURE_NO_WARNINGS】。我們打開調(diào)試下的項(xiàng)屬性,然后在 配置屬性 - C/C+ - 預(yù)處理器 - 預(yù)處理器定義 - 編輯。在下添加上【_CRT_SECURE_NO_WARNINGS】看到上有編譯的時(shí)候提類似上的另錯(cuò)誤,解決法也類似,同樣在預(yù)
8、處理器定義-編輯。在下添加上【_WINSOCK_DEPRECATED_NO_WARNINGS】筆者這并沒有出現(xiàn),不過為了以防萬,也在“預(yù)處理器定義”中添加上此宏。接下來,我們?cè)俅蜝uild程,繼續(xù)解決下錯(cuò)誤。6.錯(cuò)誤類型2:error C2466:不能分配常量為 0 的數(shù)組解決:這個(gè)主要是編譯器的問題,g+就沒有問題,在vc中定義數(shù)組,需要個(gè)常量值。我們雙擊此錯(cuò)誤,在有問題的數(shù)組定義處,按F12,看到數(shù)組定義的確實(shí)是0同樣的,我們像上樣在“預(yù)處理器定義”加【ENAGLO】接下來,我們?cè)俅蜝uild程,繼續(xù)解決下錯(cuò)誤。7.錯(cuò)誤類型3:error C1083:法打開包括件:“rtklib.h”:N
9、o such file ordirectory解決:這是因?yàn)閞cv的件找不到rtklib.h這個(gè)頭件。我們繼續(xù)在項(xiàng)屬性,在配置屬性- C/C+ 常規(guī)- 附加包含錄- 編輯 。在上添加rtklib.h的相對(duì)路徑(使相對(duì)路徑,程才可以移植到任何地,否則,換個(gè)錄路徑,還是會(huì)提此錯(cuò)誤)在項(xiàng)的src找到rtklib.h并查看它的絕對(duì)路徑,要想設(shè)置相對(duì)路徑,我們先要了解.表項(xiàng)件所在錄之下的錄。.表項(xiàng)件所在錄向上級(jí)錄下的錄。. 表項(xiàng)件所在錄向上級(jí)錄之下的錄。都是針對(duì)項(xiàng)件所在錄,于定位其它件的路徑位置。因此,在“附加包含錄”下,添加:【.src】接下來,我們?cè)俅蜝uild程,繼續(xù)解決下錯(cuò)誤。8.錯(cuò)誤類型4:e
10、rror C2099:初始值設(shè)定項(xiàng)不是常量解決:我們雙擊此錯(cuò)誤,定位到如下代碼段初始值設(shè)定項(xiàng)不是常量,這是因?yàn)閏編譯器不持函數(shù)外動(dòng)態(tài)聲明變量和分配空間,如果要必須是常量值(在數(shù)學(xué)中,0/0這種形式般稱之為不定式。 1 因?yàn)橛?jì)算0/0就是求出個(gè)數(shù),使之與0相乘結(jié)果仍得0,顯然,其結(jié)果可以等于任何數(shù)。 2 “0/0”型的函數(shù)極限的結(jié)果也沒有般的規(guī)律。)故此,我們把這條語句變量定義的初值初始化為【=0.0】接下來,我們?cè)俅蜝uild程,繼續(xù)解決下錯(cuò)誤。9.錯(cuò)誤類型5:error C4703:使了可能未初始化的本地指針變量“sbs”解決:我們雙擊此錯(cuò)誤,定位到如下代碼段,做如下修改接下來,我們?cè)俅蜝u
11、ild程,編譯后發(fā)現(xiàn)蹦出來20個(gè)莫名的錯(cuò)誤。10.錯(cuò)誤類型6:error LNK2019:法解析的外部符號(hào) _showmsg,該符號(hào)在函數(shù) _convrnx 中被引解決:查showmsg這個(gè)函數(shù)如果在DLL中需要定義,rtklib已經(jīng)做好了處理需要在預(yù)處理器加【DLL】即可,我們找到之前預(yù)處理器定義處,在下添加【DLL】,再找到項(xiàng)屬性,在配置屬性 - 鏈接器 - 輸 - 附加依賴項(xiàng)添加 【winmm.lib】和【ws2_32.lib】再次Build程,沒有錯(cuò)誤,功告成。11.部分警告處理。多數(shù)是什么類型轉(zhuǎn)換上的Warning,暫時(shí)沒有影響,暫不處理。12.總結(jié)與補(bǔ)充。般的“變量初始化”等錯(cuò)誤,
12、我們都能通過錯(cuò)誤列表定位到代碼段,進(jìn)解決,添加宏定義、頭件包含路徑,容易被開發(fā)者忽略。下總結(jié)下我們?cè)诖舜尉幾gRTKLIB開源庫中,所做的添加宏定義、頭件包含路徑等操作。(1)C/C+下預(yù)處理器 我們添加了(配置屬性 -C/C+ - 預(yù)處理器- 預(yù)處理器定義- 編輯)_CRT_SECURE_NO_WARNINGS_WINSOCK_DEPRECATED_NO_WARNINGSENAGLODLL(2)C/C+下的附加包含錄 我們添加了(配置屬性 -C/C+ 常規(guī)- 附加包含錄- 編輯)【.src】(3)連接器下的附加依賴項(xiàng) 我們添加了(配置屬性 - 鏈接器 - 輸 - 附加依賴項(xiàng))winmm.lib
13、ws2_32.lib補(bǔ)充:通過上的設(shè)置,我們可以發(fā)現(xiàn),我們多操作的是C/C+下的配置選項(xiàng),同樣,在VC+配置選項(xiàng)下,同樣有包含錄,作乎與C/C+下的附加包含錄樣,我們先了解【包含錄、庫錄、附加包含錄、附加庫錄、附加依賴項(xiàng)區(qū)別】VC+錄:包含錄:尋找#include中的xxxx.h的搜索錄庫錄:尋找.lib件的搜索錄C/C+:常規(guī)-附加包含錄:尋找#include中的xxxx.h的搜索錄(每項(xiàng)對(duì)應(yīng)個(gè)件夾XXXX,件夾中包含了編譯時(shí)所需的頭件,使時(shí)直接#include即可)鏈接器:常規(guī)-附加庫錄:尋找.lib件的搜索錄輸-附加依賴項(xiàng):lib庫(C+的庫會(huì)把函數(shù)、類的聲明放在*.h中,實(shí)現(xiàn)放在*.cpp或*.cc中。編譯之后,*.cpp,*.cc,*.c會(huì)被打包成個(gè).lib件,這樣可以保護(hù)源代碼)故,包含錄和附加包含錄(庫錄和附加庫錄)的區(qū)別:包含錄:修改了系統(tǒng)的include宏的值,是全局的;附加包含錄:于當(dāng)前項(xiàng),對(duì)其他項(xiàng)沒有影響。(庫錄和附加庫錄的區(qū)別同上)進(jìn)可知包含錄和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年通信接入設(shè)備項(xiàng)目提案報(bào)告
- 2025年血液制劑項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告范文
- 2025貴州畢節(jié)醫(yī)學(xué)高等??茖W(xué)校第一批次“人才強(qiáng)市”暨高層次急需緊缺人才引進(jìn)模擬試卷附答案詳解(典型題)
- 合作項(xiàng)目質(zhì)量與責(zé)任承諾書5篇
- 2025年嘉興海寧市中心醫(yī)院公開招聘高層次急需衛(wèi)技人員4人考前自測(cè)高頻考點(diǎn)模擬試題及參考答案詳解
- 行業(yè)信譽(yù)鑄就承諾書9篇
- 2025昆侖數(shù)智科技有限責(zé)任公司春季高校畢業(yè)生招聘15人考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(易錯(cuò)題)
- 2025年紹興新昌縣衛(wèi)健系統(tǒng)第一次公開招聘編外人員6人模擬試卷及一套完整答案詳解
- 作業(yè)保護(hù)設(shè)計(jì)印刷合同7篇
- 經(jīng)濟(jì)項(xiàng)目合作協(xié)議承諾書(7篇)
- 樹葉之美樹葉知識(shí)科普
- 勞務(wù)合同通用模板電子下載
- 平頂山橋梁亮化施工方案
- 小學(xué)四年級(jí)秋季學(xué)期《數(shù)學(xué)》(人教版)課后練習(xí)(全冊(cè)匯總)含答案
- 萬家寨水利樞紐
- 肌肉牽伸技術(shù)概述
- 去極端化教育課件
- 研學(xué)安全主題班會(huì)課件
- 組織行為學(xué) 馬工程課件5 第五章 領(lǐng)導(dǎo)
- GB/T 32800.3-2016手持式非電類動(dòng)力工具安全要求第3部分:鉆和攻絲機(jī)
- GB/T 17421.4-2016機(jī)床檢驗(yàn)通則第4部分:數(shù)控機(jī)床的圓檢驗(yàn)
評(píng)論
0/150
提交評(píng)論