麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

jrtplib使用CMake進行編譯

2019-11-10 19:16:59
字體:
來源:轉載
供稿:網友

jrtplib版本是3.10.0,cmake版本3.7.2,cmake使用的編譯器(Native Compilers)是Visual Studio 14 2015(v140),IDE版本是Microsoft Visual Studio Community 15.

這兩天研究jrtplib的編譯和使用,本身在Console控制臺環境下已經通過了。但是將jrtplib聯立到MFC中,則出現了死活編譯不過的情況。大致的報錯如下:

> jrtplib_d.lib(rtPRandomrands.obj) : error LNK2019: 無法解析的外部符號 __imp__rand_s,該符號在函數 "public: virtual unsigned char __thiscall jrtplib::RTPRandomRandS::GetRandom8(void)" (?GetRandom8@RTPRandomRandS@jrtplib@@UAEEXZ) 中被引用> jrtplib_d.lib(rtprandom.obj) : error LNK2019: 無法解析的外部符號 __imp___getpid,該符號在函數 "public: unsigned int __thiscall jrtplib::RTPRandom::PickSeed(void)" (?PickSeed@RTPRandom@jrtplib@@QAEIXZ) 中被引用> msvcrtd.lib(_chandler4gs_.obj) : error LNK2019: 無法解析的外部符號 __except_handler4_common,該符號在函數 __except_handler4 中被引用

在MFC工程中,我確定正確設置了附加依賴庫和庫路徑位置,因此只可能是jrtplib本身的編譯存在問題。

經查閱資料,發現主要是MFC底層依賴了libcmt.lib(Release)/libcmtd.lib(Debug)和msvcrt.lib(Release)/msvcrtd.lib(Debug)庫,jrtplib代碼生成的運行庫類型和MFC不一致導致。因此,主要采用了兩步解決了以上鏈接問題。

忽略默認庫。 打開cmake生成jrtplib項目下的jrtplib-static工程屬性,選擇“配置屬性”->“庫管理器”->“常規”->“忽略特定默認庫”,填充libcmt.lib;libcmtd.lib;msvcrt.lib;msvcrtd.lib;調整代碼生成運行庫類型。打開cmake生成jrtplib項目下的jrtplib-static工程屬性,選擇“C/C++”->“代碼生成”->“運行庫”,選擇“多線程(/MT)”,與MFC的運行庫類型保持一致。

然后生成項目(ALL_BUILD),安裝(INSTALL),exampleX的5個項目可能會出問題,不用管他們,如果需要可以手動修改各自的代碼生成運行庫類型為/MT。

再導入到MFC項目中就正常啦。

PS. 如果編譯jrtplib時沒有選擇jthread,MFC項目里實際用的時候也不用鏈接jthread.lib。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久网日本 | 成人国产综合 | 欧美乱码精品一区 | 欧美激情视频一区二区免费 | 欧美日韩在线影院 | 少妇一级淫片免费放播放 | 新久草视频 | 国产精品野外av久久久 | 欧美三级一级 | av电影手机在线看 | 久久美女色视频 | 国产精品爱久久久久久久 | 污黄视频在线观看 | 国产毛片毛片毛片 | 亚洲成人免费网站 | 日韩精品中文字幕一区二区 | 国产98色在线 | 色综合久久久久久久久久 | 免费欧美精品 | 日韩毛片网| 精品国产一区二区三区在线观看 | 久章草影院 | 欧美三级欧美成人高清www | 国产精品啪 | 天天透天天狠天天爱综合97 | 无遮挡一级毛片视频 | 91美女视频在线 | 久久久久久久久久久亚洲 | 久久人人爽人人爽人人片av高清 | 在线播放黄色网址 | 国产一级午夜 | 91在线免费观看 | 一区二区三区精品国产 | 涩涩天堂| 一级免费黄视频 | 国产精品久久久久久久娇妻 | 性生活视频软件 | 一级黄色在线免费观看 | 免费在线观看国产精品 | 久久线视频 | 欧美成在线视频 |