vs中调用mingw编译的linphone

由于linphone不能直接用vs编译, 而用mingw编译很方便,所以我们可以通过vs调用mingw编译好的库。这种方式要解决的是从dll,创建vs需要的lib文件。
1.mingw编译linphone-3.5.2
参考 http://blog.csdn.net/gavinr/article/details/7337606


2.创建vs需要的lib文件
创建def文件,这要用一个第三方的工具pexports,可以在mingw中使用命令mingw-get install pexports进行安装。
$ pexports liblinphone-4.dll > linphone.def
$ pexports libmediastreamer-1.dll > mediastreamer.def


创建lib文件,用vs自带的lib程序即可。打开vs命令行,执行下面的操作
E:\temp>lib /machine:x86 /def:linphone.def
Microsoft (R) Library Manager Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.


   Creating library linphone.lib and object linphone.exp


同样的方式生成mediastream.lib


3.vs测试工程
vs2008建立一个控制台工程linphone-3.5.2,测试代码直接使用了以前写的测试代码(用vs编译会有一个小错误,将变量定义语句放到函数开始处即可): http://blog.csdn.net/gavinr/article/details/7344916


添加依赖库mediastream.lib linphone.lib


添加头文件目录,D:\MinGW\msys\1.0\local\include


这时编译应该能成功生成可执行程序linphone-3.5.2.exe了


4.测试
由于依赖了很多其它的库,懒得到mingw中去找了,所以测试时直接在mingw命令行中进行。
呼叫远程sip客户端
$ linphone-3.5.2 sip:192.168.9.81
ortp-error-Fail to create class enumerator.
ortp-warning-./share/sounds/linphone/rings/oldphone.wav does not exist
call state: Starting outgoing call
Unhandled notification 2
Call to sip:192.168.9.81 is in progress...ortp-warning-cannot set noise gate mod
e to [0] because no volume send
call state: Outgoing call in progress
Unhandled notification 3
ortp-warning-Failed to open ./share/sounds/linphone/ringback.wav
call state: Remote ringing

你可能感兴趣的:(object,manager,测试,Microsoft,include,library)