如何从.lib文件中提取所有.obj文件?我发现的唯一方法是一次提取一个。有没有办法实现自动化?
LIB.EXE /EXTRACT:member.obj Library.LIB
答案 0 :(得分:4)
这是我最终以extract.bat mylib.lib
或extract.bat *.lib
的用法使用的批处理文件
@ECHO OFF
SETLOCAL EnableDelayedExpansion
:Loop
IF "%1"=="" GOTO Continue
FOR %%F in (%1) DO (
SET LIBFILE=%%F
SHIFT
@ECHO !LIBFILE!
FOR /F %%O IN ('lib.exe /LIST !LIBFILE! /NOLOGO') DO (
@SET OBJFILE=%%O
@ECHO !OBJFILE!
SET OBJPATH=%%~dO%%~pO
SET OBJNAME=%%~nO
IF NOT EXIST "!OBJPATH!" md !OBJPATH!
IF EXIST "!OBJFILE!" ECHO !OBJFILE! exists, skipping...
IF NOT EXIST "!OBJFILE!" lib.exe /NOLOGO !LIBFILE! "/EXTRACT:!OBJFILE!" "/OUT:!OBJFILE!"
)
)
GOTO Loop
:Continue
答案 1 :(得分:-1)
您可以编写一个简短的程序,使用system(...)
- 函数来执行调用。
但是,这仍然会让您产生生成成员对象文件列表的问题。