第二版移植第三版后不能生成lib文件,解决办法

来源:互联网 发布:淘宝二手书 编辑:程序博客网 时间:2024/06/05 17:52

昨天的 工作 是开始移植 我的程序 到 S60 3rd版本上。

但是刚刚开始就遇到了 问题。我的DLL在 S60 3rd 上编译不过,可以生成 DLL,但不能生成 lib 。

这让我头大了不 少。我也是第一次做移植工作。SYMBIAN上的资料本来就少的可怜。同事们帮忙看了一下,也没有结果。

下班的路上一直在思考,为什么不行?

晚上回去吃了饭,因为家里有邻居在,就没好意思开电脑继续工作。一直等到邻居走后,赶紧打开电脑找什么原因。

我用 Carbide C++ 1.3 创建了 一个 “Basic dynamically linked library(DLL)”的工程不写任何的代码。编译 这是也出现我的 错误:

Not attempting to create "/Symbian/9.1/S60_3rd_MR/EPOC32/RELEASE/WINSCW/UDEB/DemoDll.lib".


晕的不行了。为什么呢??

然后我找到了 SDK 中的例子。这个例子也是DLL,然后导入工程,编译!编译通过。有希望了。这可以判断至少开发环境应该是没有任何问题的。不然这个不会编译过。

接着我对比了 两个工程的 BLD文件和 MMP文件。没有发现什么问题。


又晕,为什么呢??

我查看了两个工程目录下的文件。能编译过的下面有两个文件(BWINS和EABI)里面有一个 .def的文件。

上网查了一下这个文件的作用:

原因是血少DEF文件。

可以使用abld freeze生成相应平台的DEF文件.

abld [ test ] freeze [-k] [-v] [ platform ] [ program ]

bldmake bldfiles //生成abld文件
abld makefile vc6  //生成工程文件
abld freeze   //封版本吧

然后程序就可以编译通过,而且LIB文件也生成了。