zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1653回复:17

加入驱动的版本信息时出错?

楼主#
更多 发布于:2004-09-20 11:47
我用wdmbuilddriver.bat编译驱动成功,但当在source中加入2bd_drv.rc,想增加版本信息时就出错。
附上错误信息、wdmbuilddriver.bat和2bd_drv.rc,请求指教。

编译时的错误信息:
====================================================================
 Build Windows driver
====================================================================
BUILD: Object root set to: ==> objchk
BUILD: /i switch ignored
BUILD: Compile and Link for i386
BUILD: Compiling d:testuidpci_test directory
Compiling - objchki386messages for i386
Compiling - 2bd_drv.rc for i386
rc() : error RC1103 : invalid option, -FR
cvtres() : error CVT1101: cannot open objchki3862bd_drv.tmp for reading
BUILD: Compile errors: not linking d:testuidpci_test directory
BUILD: Done


附上WdmBuildDriver.bat内容

@echo off

echo **************************************************************
echo *
echo * File       :  WdmBuildDriver.bat
echo *
echo * Description:  Used to build the WDM device driver
echo *
echo **************************************************************


echo.

SET PLX_CHIP=Pci9050

echo ====================================================================
echo  Perform any error checks
echo ====================================================================
IF NOT "%PLX_CHIP%" == "" GOTO EnvOk
echo ERROR: PLX_CHIP environment variable not defined.  Please
echo        set to one of the following:
echo.
echo            PCI9030
echo            PCI9050
echo            PCI9080
echo            PCI9054
echo            IOP480
GOTO Exit
:EnvOk


IF NOT "%OS%" == "Windows_NT" SET NULL=nul
IF NOT "%OS%" == "Windows_NT" SET RD=DelTree /y
IF     "%OS%" == "Windows_NT" SET RD=Rd /q /s

IF "%1" == "c" goto Clean
IF "%1" == "C" goto Clean


echo ====================================================================
echo  Create necessary directories
echo ====================================================================
IF NOT EXIST Obj%BUILD_ALT_DIR%%NULL%          Md Obj%BUILD_ALT_DIR%
IF NOT EXIST Obj%BUILD_ALT_DIR%%Cpu%%NULL%    Md Obj%BUILD_ALT_DIR%%Cpu%
IF NOT EXIST Driver%NULL%                      Md Driver
IF NOT EXIST i386%NULL%                        Md i386

echo ====================================================================
echo  Build the message file if it doesn't exist
echo ====================================================================
Nmake /nologo /c /s /f MakeFile.inc MessageFiles
echo.


echo ====================================================================
echo  Build Windows driver
echo ====================================================================
build -Zbwe %1
IF ERRORLEVEL == 1 SET Error=1


echo ====================================================================
echo  Build Browser Information
echo ====================================================================
IF EXIST *.sbr Copy *.sbr Obj%BUILD_ALT_DIR%%Cpu% >NUL
IF EXIST *.sbr Del  *.sbr
Nmake /nologo /c /s /f MakeFile.inc BrowserFiles
IF ERRORLEVEL == 1 SET Error=1


echo ====================================================================
echo  Cleanup and check if any errors were encountered
echo ====================================================================
IF EXIST Obj%NULL%  %RD% Obj >NUL
IF "%Error%" == "1" GOTO Cleanup


echo ====================================================================
echo  Remove log files if error-free build
echo ====================================================================
IF EXIST Build%BUILD_ALT_DIR%.*  Del Build%BUILD_ALT_DIR%.*


echo ====================================================================
echo  Copy to floppy & copy symbols, etc. (For PLX internal use only)
echo ====================================================================
IF "%PLX_INTERNAL%" == "" Goto Cleanup
IF NOT EXIST ObjApi%NULL%                MD ObjApi               >NUL
IF NOT EXIST ObjApi%DDKBUILDENV%%NULL%  MD ObjApi%DDKBUILDENV% >NUL
Copy Obj%BUILD_ALT_DIR%%Cpu%ApiFunctions.* ObjApi%DDKBUILDENV% >NUL
echo.
IF NOT "%NO_FLOPPY%" == "" GOTO Cleanup
C:WindowsCommandChoice /n /s /c:yYnN "     Copy driver to floppy [y,n]? "
IF ERRORLEVEL == 3 Goto Cleanup
Copy Driver%DDKBUILDENV%%Cpu%*.sys a:Wdm
Goto Cleanup


:Clean
echo ====================================================================
echo  Delete build files if cleaning
echo ====================================================================
echo Deleting: All build files
IF NOT "%PLX_INTERNAL%" == ""       %RD% ObjApi
IF EXIST Obj%NULL%                 %RD% Obj
IF EXIST Obj%BUILD_ALT_DIR%%NULL%  %RD% Obj%BUILD_ALT_DIR%
IF EXIST Driver%NULL%              %RD% Driver
IF EXIST *.sbr                      Del  *.sbr
IF EXIST Build%BUILD_ALT_DIR%.*     Del Build%BUILD_ALT_DIR%.*
echo Deleting: ...finished!


:Cleanup
rem ====================================================================
rem  Remove common files to avoid multiple versions
rem ====================================================================
IF EXIST i386%NULL%  %RD% i386 >NUL

SET RD=
SET NULL=
SET Error=
SET PLX_CHIP=

echo CnvrtLf converts file so it's viewable in a text editor
IF EXIST Build%BUILD_ALT_DIR%.log CnvrtLf Build%BUILD_ALT_DIR%.log

:Exit
echo.


我的2bd_drv.rc文件


#include<winver.h>


/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,0,1,0
 PRODUCTVERSION 1,0,1,0
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x40004L
 FILETYPE 0x0L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "080404b0"
        BEGIN
            VALUE "Comments", ""
            VALUE "CompanyName", "abc Co.,Ltd"
            VALUE "FileDescription", "2BD_DRV"
            VALUE "FileVersion", "1, 0, 1, 0"
            VALUE "InternalName", "2BD_DRV"
            VALUE "LegalCopyright", "Copyright  2004"
            VALUE "LegalTrademarks", ""
            VALUE "OriginalFilename", "2BD_DRV.SYS"
            VALUE "PrivateBuild", ""
            VALUE "ProductName", "jiaxun 2BD_DRV"
            VALUE "ProductVersion", "1, 0, 1, 0"
            VALUE "SpecialBuild", ""
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x804, 1200
    END
END







[编辑 -  9/20/04 by  zl_per]
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-20 20:07
你是命令行编译,DDK环境?
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-21 09:08
是的
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-21 13:17
正常你直接在它工程里的*.rc文件里加入即可,
如果自己建个文件,
在source里把文件名加入即可,其他都不用改

学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-21 13:23
我是这么做的,可能是wdmbuilddriver.bat的缘故,编译时显示如下错误:
====================================================================
Build Windows driver
====================================================================
BUILD: Object root set to: ==> objchk
BUILD: /i switch ignored
BUILD: Compile and Link for i386
BUILD: Compiling d:testuidpci_test directory
Compiling - objchki386messages for i386
Compiling - 2bd_drv.rc for i386
rc() : error RC1103 : invalid option, -FR
cvtres() : error CVT1101: cannot open objchki3862bd_drv.tmp for reading
BUILD: Compile errors: not linking d:testuidpci_test directory
BUILD: Done

查看wdmbuilddriver.bat,但我看不出问题在哪。
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-21 16:06
工程原来有没有*.rc文件,
如果不加入你的rc文件也会出错?
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-21 18:09
我用的是命令行方式;
rc文件已经创建了;
错误信息、wdmbuilddriver.bat和2bd_drv.rc都在第一篇帖子中,
怀疑是wdmbuilddriver.bat和2bd_drv.rc的匹配问题,请帮我检查一下,小弟是在没招了,谢谢
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-22 08:47
我用的是命令行方式;
rc文件已经创建了;
错误信息、wdmbuilddriver.bat和2bd_drv.rc都在第一篇帖子中,
怀疑是wdmbuilddriver.bat和2bd_drv.rc的匹配问题,请帮我检查一下,小弟是在没招了,谢谢
 


wdmbuilddriver.bat这个文件是编译环境自带的吧,一般不会有问题
可能是你的SOURCE或RC中有问题

你的什么系统,那个环境下编译的ddk?
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-22 09:54
我用win2000和2000ddk,wdmbuilddriver.bat是编译环境自带的,是不是其中的这部分不支持rc文件
echo ====================================================================
echo Build Windows driver
echo ====================================================================
build -Zbwe %1
IF ERRORLEVEL == 1 SET Error=1

但我修改-Zbwe好像还是不管用。郁闷!

arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2004-09-22 15:12
贴出source文件
zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-09-22 15:19
source文件:   请求指教!

#***********************************************************
#  File: Sources
#
#  Specifies build settings and files to compile
#***********************************************************


TARGETNAME = pciwdm
TARGETPATH = Driver\$(DDKBUILDENV)
TARGETTYPE = DRIVER

USE_PDB    = 1

INCLUDES   = $(BASEDIR)\Inc;..\..\..\..\Inc;   \
             ..\..\Common;                     \
             ..\..\Common\PlxChip\$(PLX_CHIP); \
             ..\..\Common\Wdm

C_DEFINES  = -DPCI_CODE -DLITTLE_ENDIAN -DPLX_DRIVER \
             -DDRIVER -DWDM_DRIVER -FR               \
             -DPCI9050

!IF "$(DDKBUILDENV)" == "checked"
C_DEFINES = $(C_DEFINES) -DPLX_DEBUG
!ENDIF


#***********************************************************
# Files to build
#***********************************************************
SOURCES = \
          ApiFunctions.c  \
          Dispatch.c      \
          Driver.c        \
          EepromSupport.c \
          GlobalVars.c    \
          Interrupts.c    \
          Messages.rc     \
          PciRegSupport.c \
          PlugPlay.c      \
          PlxChip.c       \
          init.c          \
          DEBUGPRINT.C    \
          Power.c         \
          SupportFunc.c   \
          2bd_drv.rc
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2004-09-23 11:36
C_DEFINES = -DPCI_CODE -DLITTLE_ENDIAN -DPLX_DRIVER
-DDRIVER -DWDM_DRIVER -FR
-DPCI9050

-FR选项,cl能认识,但RC.exe不认识
如果想产生sbr文件,把-FR加到USER_C_FLAGS

Use the USER_C_FLAGS macro to specify flags that should only be sent to the C/C++ compiler.

Unlike C_DEFINES, USER_C_FLAGS is not sent to the RC compiler.

zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-09-23 11:56
我尝试在source中去掉-FR,编译通过了,但同时产生下列信息:
Linking Executable - driver\free\i386\2bd_drv.sys for i386
2bd_drv2.res() : warning LNK4059: messages.res already specified; additional resource file ignored
BUILD: Done

查看.sys的属性,没有出现版本面板。

是不是要产生sbr文件才出现版本面板?
那如何把-FR加到USER_C_FLAGS 中?
谢谢
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2004-09-23 13:10
不好意思,看漏了,居然还有个rc文件
为什么不直接改messages.rc文件呢?
我没有试过,所以也不会用多个rc文件产生res文件的方法。
zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-09-23 13:14
messages.rc:
LANGUAGE 0x9,0x1
1 11 Messages.bin

不知道是干什么用的。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2004-09-23 13:24
试一下:
在source文件去掉msg.rc
在你的rc文件,#include “msg.rc”
zl_per
驱动牛犊
驱动牛犊
  • 注册日期2004-04-16
  • 最后登录2004-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-09-23 13:43
在source中去掉-FR和messages.rc,居然就行了。不过毕竟这不是最优方案,就先这么着吧!
谢谢各位,让大家费心了
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-09-23 14:57
正常你直接在它工程里的*.rc文件里加入即可,
如果自己建个文件,
在source里把文件名加入即可,其他都不用改

 
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
游客

返回顶部