在Windows下編譯最新版本的Libjingle
Libjingle版本: 0.5.2
作業系統: Windows XP
編譯器: Microsoft Visual C++ 2008 Express
具體可以參考README:
http://code.google.com/p/libjingle/source/browse/trunk/README
這裡將根據我自己的環境以及遇到的問題進行總結.
1. 安裝Python 2.4或者之後的版本. 因為swtoolkit只能工作在Python 2.x版本, 所以不能安裝Python 3.x版本.
下載位置:http://www.python.org/
2. 安裝scons-local 2.0.0或者之後的版本. 設定環境變數SCONS_DIR指向包含scons-local的目錄, 如/src/libjingle/scons-local/scons-local-2.0.0.final.0/
注意SCONS_DIR指向的目錄不是你下載的scons-local包直接解壓縮後的目錄 (這個目錄包括scons.py, scons-README等檔案), 而是裡面包含的名為scons-local-x.x.x的子目錄
下載位置:http://www.scons.org/download.php
3. 安裝swtoolkit
下載位置:http://code.google.com/p/swtoolkit/
4. 下載expat包, 解壓縮到talk/third_party/expat-2.0.1/
注意不要下載Win32安裝包, 而應該是原始碼包
下載位置:http://sourceforge.net/projects/expat/
5. 下載最新的srtp包, 解壓縮到talk/third_party/srtp
注意不要使用srtp-1.4.4, 因為這個版本遺漏了Libjingle所使用的一些extensions
下載位置:http://sourceforge.net/projects/srtp/develop
為了省去你使用CVS下載最新srtp程式碼的麻煩, Libjingle已經上傳了最新的srtp包, 下載位置:http://libjingle.googlecode.com/files/srtp-cvs.zip
如果你的expat和srtp包在其他位置或者名稱不一樣, 需要對應地修改talk/libjingle.scons
6. 進入到talk目錄, 執行$path_to_swtoolkit/hammer.bat
將會進行編譯, 最終將在talk/build/dbg/lib目錄下生成:
expat.lib
libjingle.lib
libsrtp.lib
libxmpphelp.lib
在talk/build/dbg/staging目錄下生成:
call.exe
login.exe
relayserver.exe
stunserver.exe
下面是可能遇到的編譯問題以及對應的解決方法.
1.
編譯錯誤talk\session\phone\devicemanager.cc(31) : fatal error C1083: Cannot open include file: 'atlbase.h': No such file or directory
解決方法:
1) 安裝Platform SDK
下載位置:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a55b6b43-e24f-4ea3-a93e-40c0ec4f68e5
2) 新增c:\Program Files\Microsoft Platform SDK\Include\atl到INCLUDE環境變數中, 在編譯Libjingle的同一DOS視窗中執行set INCLUDE=c:\Program Files\Microsoft Platform SDK\Include\atl;%INCLUDE%
Refer to:
http://code.google.com/p/libjingle/issues/detail?id=89
2.
編譯錯誤
c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : error C2220: warning treated as error - no 'object' file generated
c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(206) : error C2011: 'sockaddr' : 'struct' type redefinition
c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(437) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h(132) : error C2011: 'fd_set' : 'struct' type redefinition
c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(68) : see declaration of 'fd_set'
c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h(176) : error C2011: 'timeval' : 'struct' type redefinition
c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(111) : see declaration of 'timeval'
......
解決辦法:
在devicemanager.cc中#if WIN32巨集開始的地方加入
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
在在devicemanager.cc中#if WIN32巨集結束之前的地方加入
#include <mmsystem.h>
最後應該如下: #if WIN32
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <atlbase.h>
#include <dbt.h>
#include <strmif.h>// must come before ks.h
#include <ks.h>
#include <ksmedia.h>
#define INITGUID // For PKEY_AudioEndpoint_GUID
#include <mmdeviceapi.h>
#include <functiondiscoverykeys_devpkey.h>
#include <uuids.h>
#include "talk/base/win32.h"// ToUtf8
#include "talk/base/win32window.h"
#include <mmsystem.h>
#elif OSX
Refer to:
http://code.google.com/p/libjingle/issues/detail?id=89
12. Added #include <mmsystem.h> to line 42 of talk\session\phone\devicemanager.cc (Just above the end of the windows tag)
http://social.msdn.microsoft.com/Forums/en/vclanguage/thread/671124df-c42b-48b8-a4ac-3413230bc43b
For historical reasons, the Windows.h header defaults to including the Winsock.h header file for Windows Sockets 1.1. The declarations in the Winsock.h header file will conflict with the declarations in the Winsock2.h header file required by Windows Sockets 2.0. The WIN32_LEAN_AND_MEAN macro prevents the Winsock.h from being included by the Windows.h header.
So, please add:
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
Before "#include <windows.h>". This will tell the compiler to ignore all Winsock 1.1 definitions within windows.h.
3.
Link錯誤
________Linking build\dbg\obj\call.exe
相關推薦
在Windows下編譯最新版本的Libjingle
Libjingle版本: 0.5.2作業系統: Windows XP編譯器: Microsoft Visual C++ 2008 Express具體可以參考README:http://code.google.com/p/libjingle/source/browse/trunk/README這
nginx-1.15.5 windows下 64位版本編譯過程詳解
編譯原始碼、工具、指令碼等和釋出在下面地址: 原始碼準備: 官網釋出的NGINX原始碼,不包含windows編譯部分,但是包含了主要的原始碼(片斷一): 下載地址:http://nginx.org/download/nginx-1.15.5.tar.gz windo
Windows下編譯並使用libcurl(curl:http客戶端庫c++版本)
一、下載最新版本libcurlhttps://curl.haxx.se/libcurl/ 二、編譯 解壓進入curl-curl-7_59_0\winbuild\下 靜態庫,debug nmake /f Makefile.vc mode=static VC=14 DE
在Windows下編譯多種VS版本的Skia
****************************************************************************************************************************************
在Windows下編譯Lua
play pre functions aries programs mem lba other pil http://blog.csdn.net/yue7603835/article/details/41739085 http://blog.csdn.net/birdfl
在Windows下編譯WebRTC
obj 自己 war invalid bds amd clu out tail 前言 這篇文章的目的在於為你節省生命中寶貴的10小時(甚至更多),或者浪費你10分鐘。作為Google更新頻繁的大型跨平臺基礎庫,WebRTC的編譯一直被人稱為噩夢。如果恰巧你偏要在Windo
windows下編譯python3.6
python3 pytho sof 3.6 只需要 bsp .exe .cn 技術分享 在pcbuild文件夾下找到pcbuild.sln文件.在readme裏面有 Install Microsoft Visual Studio 2015, any edition. 所
windows下python3.6版本安裝pygame
項目文件 fff text http word apple details cin 找到 參考:http://blog.csdn.net/a380331382/article/details/77063152 首先,進入這個網站:http://www.lfd.uci.e
windows下編譯qt的mysql驅動
dot god sql plugins dep .com .html path h+ windows下編譯qt的mysql驅動cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH
Windows下編譯MySQL 5.7源代碼
tro col uic align 安裝 nbsp 安裝路徑 目錄 img Windows下編譯MySQL 5.7源代碼 前提準備 ====== Visual Studio 2013: MySQL 5.7源代碼:可以從這裏下載: http://dev.mysql.co
2017python windows 客戶端最新版本3.6.2安裝教程
python第一章 下載windows版本的python登錄網址 https://www.python.org/getit/ 點擊下載Download Python 3.6.3第二章 安裝python-3.6.2.exe根據下圖提示操作即可。第三章 驗證python客戶端是否安裝成功主
Windows下編譯nginx-rtmp-module
win10 threshold tar ram 1.2 openss direct down 0.11 http://nginx.org/en/docs/howto_build_on_win32.html 官網上的操作說明。 官網的方法Nginx編譯方法,思路是一致的,只是
Windows下編譯Python2.7源碼
dll 虛擬 命令 src nco cnblogs arr appdata 配置 本文開始一個系列文章,深入理解Python源碼,算是閱讀《Python源碼剖析》一書的讀書筆記,是一項長期進行的工作。一共分三個部分:Python對象模型,Python虛擬機,Python模塊
windows下編譯調試nginx
無法 pat temp linux命令 setup 易用 down nag exe typora-copy-images-to: image windows下編譯調試nginx linux使用gdb跟蹤代碼效率不高,在通過跟蹤代碼進行源碼分析,與定位復雜邏輯問題時,如果有
windows下caffe GPU版本配置
得到 詳細步驟 drive nbsp ubunt cudnn www uget caff 由於項目需要,所以在自己本子上配置了一下windows下GPU版本的caffe; 硬件: win10 ; gtx1070獨顯(計算能力6.1); 安裝軟件:
windows 下編譯tensorflow c++庫過程記錄
生成 native uil 定義 arch lin share lock bsp 1. 準備 windows 10系統、3.6GHz cpu、16G 內存 visual studio 2017 or 2015 下載安裝git 下載安裝cmake 下載安裝swi
windows下編譯google-protocolbuf在Qt中使用
arr protobuf close gif fixed 放置 導出 內容 serialize 1.首先從Github-Protobuf下載代碼,本文下載的版本號是3.1.0. 2.仔細查看各個README,有相關的資源下載和編譯說明. 3.在一個方便的地方創建一個Ins
windows下編譯nginx+nginx_rtmp_modue(vs2013)
path href select 簡單 選項 win32 fastcgi rtc cef 閱讀官方編譯windows版本的方法 http://nginx.org/en/docs/howto_build_on_win32.html 我的環境 Windows 7 Ultima
windows下編譯arm-linux
arm 分享圖片 ext tps 工具 習慣 技術分享 down c++ 本文主要參考:在windows環境下,使用Eclipse和gcc-Linaro工具鏈,對BeagleBone進行交叉編譯和遠程部署 不習慣在linux編譯代碼,所以想在windows下整個環境出來。
windows下node多版本管理NVM安裝
註意事項 rec ron git ofo ati releases code strong 下載 nvm-windows 最新下載地址:https://github.com/coreybutler/nvm-windows/releases 註意事項 選擇nvm安裝的路徑中