windows下操作静态库lib(相当于linux下的ar命令)

linux下有ar可以操作.a文件,windows下提供了lib.exe操作lib文件,从vs的控制台编译环境中可以直接调用。

主要有一下几个操作:

  1. 列出obj::lib /list xxx.lib
  2. 释放obj: lib /extract:xxx.obj /out:new.obj xxx.lib
  3. 删除obj:lib /remove:xxx.obj xxx.lib
  4. 增加obj:lib xxx.obj xxx.lib

通过下面bat脚本可以释放所有obj

@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

 

posted @ 2023-09-21 14:32  huorexiaji  阅读(362)  评论(0)    收藏  举报