如何编译 CETK下面的 CameraApp


首先打开 vs2005 private 目录下点击右键 open build window 打开命令行编译窗口。

 

然后 CD E:/WINCE600/PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/CAMERA 目录下面。

 

 

首先执行 build 命令。

如果是第一次编译的话它可能会产生这样一个错误:

The error msg was ... don't know how to make ....captureframework.lib.
And so I tried to build the ...dshow/camera/framework/default directory in
order to create the errored captureframework.lib file. And then another error
msg was happened. 'cannot open program database
'e:/wince600/osdesign/..../captureframework.pdb'. Of source, there was no
such file at the path.

 

你需要的只是建立一个那样的目录。

 

再次执行 build 命令 它会产生这样的错误!

don't know how to build STREEUTILS.LIB

 解决方法 :

E:/WINCE600/PUBLIC/OSTEST/OAK/LIB/ARMV4I/RETAIL 下面的 STREEUTILS.LIB 复制到 E:/WINCE600/OSDesigns/OSAs6410Guide/OSAs6410Guide/Wince600/SMDK6410_ARMV4I/OAK/lib/ARMV4I/retail 文件夹下面。

 

再次执行 build 命令

它可能会产生这样的错误:(如果没有产生就继续往下面看吧)

error C2039: 'CoDisconnectObject' : is not a member of '`global namespace''

error C2873: 'CoDisconnectObject' : symbol cannot be used in a using-declaration

………………………..

这个错误的原因是:在 wince600/others/atl8/include/atlcore.h 文件中定义了这样的一段:

#if !defined(_WIN32_WCE) || (!defined(_ATL_STATIC_LIB_IMPL) && !defined(_ATL_DLL_IMPL) && defined(_CE_DCOM))

using ::CoDisconnectObject;

using ::CoInitialize;

using ::CoRevokeClassObject;

using ::CoRegisterClassObject;

using ::CoReleaseMarshalData;

using ::CoMarshalInterface;

using ::CoUnmarshalInterface;

using ::OleSaveToStream;

using ::OleLoadFromStream;

#endif // !defined(_WIN32_WCE) || (!defined(_ATL_STATIC_LIB_IMPL) && !defined(_ATL_DLL_IMPL) && defined(_CE_DCOM)

 

定义这个是因为我们的 CE 支持一些功能。 见里面的一句话: http://www.tech-archive.net/Archive/WindowsCE/microsoft.public.windowsce.embedded.vc/2008-03/msg00042.html

 

Looking at the ATL file you're hitting errors, those fcns are only brought
in when this #ifdef is set.
#if !defined(_WIN32_WCE) || (!defined(_ATL_STATIC_LIB_IMPL) &&
!defined(_ATL_DLL_IMPL) && defined(_CE_DCOM))
--
We have this ifdef because those fcns are supported on CE devices that
support the full cross-proc COM. So looks like you have _WIN32_WCE defined
to get the fcns, but didn't build with full DCOM to get the actual fcn
definitions?

 

解决这个问题的方法:

查找 _CE_DCOM 宏的定义, 并把它全部注释掉。

它的定义在 WINCE600/OTHERS/ATL8/INCLUDE/ATLDEFACE.H 53 78 行。

 

再次执行 build 命令

它这次报的错误主要是缺少某些库( lib )。

解决方法是: CD PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/COMMON/LIBS 目录下对应的文件夹下面执行 build 命令。

 

LIB 目录对应目录下面执行 build 命令后 , 再退回到 camera 目录下面再次执行 build 命令, 如果再报缺少 lib 的话再次到 PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/COMMON/LIBS 下找到对应的文件夹 build 一下。

 

最后在 camera 下执行 build 命令编译成功

(因为在最后编译的过程中试过了很多方法, 很多的错误信息都丢失了, 所以没有贴出)

 

E:/WINCE600/OSDesigns/OSAs6410Guide//Wince600/SMDK6410_ARMV4I/OAK/target/ARMV4I/retail 下找到编译成功的文件。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值