原创 跨平臺構建:cmake實踐

跨平臺構建系統的要點有下列幾項: 項目組織:開源項目內一般會存在多個不同的構建目標,類型有:可執行文件、動態庫、靜態庫,這些項目各有自己的獨立源文件目錄 根目錄 根目錄下有一個 CMakeList.txt,裏面定義了cmake版本需

原创 VirtualBox 下搭建Ubuntu18.04開發環境

虛擬機使用 Oracle VirtualBox,操作系統使用 Ubuntu18.04,集成開發環境使用 VSCode,構建系統使用 cmake,編譯器使用 llvm/clang 6.0,調試器使用 lldb。下面記錄了大部分問題和解決步驟

原创 fix microsoft angle compile error: unresolved reference _guard_dispatch_icall

近期需要爲 UWP 編譯 skia,其自帶的 angle 沒有做支持,查到 https://github.com/Microsoft/angle 有一個 uwp-2017 的分支,可以用來替代 skia 的 angle,打開 angle\

原创 TensorFlow 1.13 在 windows 上的構建

一.使用CMake + VS2015 IDE編譯(失敗,結果導向的看後面用 Bazel編譯) 準備工作 安裝 cmake 3.12+ (3.9+應該也可以) 下載 swigwin-3.0.12,從 http://prdownloads.s

原创 D3D11顯示ffmpeg解碼出的YUV420P數據

最近在做D3D11的播放器,用來顯示ffmpeg解碼出來的AVFrame,這裏記錄下踩過的坑。 剛開始的實現是基於RGBA,需要使用sws_scale將AVFrame像素格式轉換成RGBA,然後更新紋理(格式爲DXGI_FORMA

原创 ffmpeg 內av_frame_move_ref 誤用導致的內存泄漏

/**  * Move everything contained in src to dst and reset src.  */void av_frame_move_ref(AVFrame *dst,

原创 解決使用 libcurl 遇到的多線程崩潰問題

使用 curl 訪問 http 鏈接時,用 easy handle,阻塞方式訪問時發現會每個訪問啓動一個線程去進行dns 想減少這種消耗,故此採用了 sh = curl_share_init(); curl_share_setopt(sh

原创 從 windows 到 linux(3):std::list::erase 不能用 const_iterator

../src/map_server/Team/RandomTeamManager.cpp: In member function ‘void RandomTeamManager::_HandleConfirmTeam(uint32, bo

原创 定製cocos2d的GLView

使用場景 需求:將cocos2d 的輸出窗口設置爲一個子窗口,父窗口其它部分仍然有控件 cocos2d功能強大,但是卻不好整合進各種gdi和MFC程序中,有些實現是改cocos2d的項目源代碼,這樣的話,後續升級版本麻煩些,本文提供的方法

原创 大量 vcproj 構建順序管理工具的實現(一)

1.引入問題 公司產品有大量模塊(vcproj)需要在日常和出貨時構建,有一個專門的批處理(BuildOrder_XXX.bat)去管理這些模塊的構建順序,每個開發者在寫新模塊後,都需要將它加入批處理文件內某一行,這沒問題。但後續某個模塊

原创 大量 vcproj 構建順序管理工具的實現(二)

.bat / .sln / .vcproj 文件的解析後續再說,這裏先討論下模塊依賴關係的排序。 假設我們通過上一步獲取了模塊之間的依賴關係了,存儲爲這種結構: struct ProjectInfo; typedef std::map<s

原创 vs2003 使用 sigslot

今天用 vs2003.net 來編譯一下使用 sigslot  1.0.0的小測試程序,發現2個編譯錯誤 d:/src/test/sigslot/sigslot.h(419): error C2146: syntax error : m

原创 使用 boost::property_tree::ptree 讀取配置文件

近期有一需求:需要一個地址配置項,同時提供一個地址列表,讀取的地址如果在地址列表內,則自動替換,大概的 json 配置文件如下: { "host_list" : { "BDC" : "chn.xxx.com", "MDC" :

原创 升級到VS2015 的 RC 文件包含 afxres.h,編譯報錯的解決辦法

一些升級上來的工程內,rc 文件包含了 afxres.h,vs2015 內又找不到(位置在 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afx

原创 VS2008突然調試程序很慢,加載 ntdll.dll,kernel32.dll 都要花一段時間

以前出現過一次,是重裝了VS解決的,這次偶然 終止了內存中的 mspdbsrv.exe就解決了