在知道拥有动态库和头文件的情况下,但没有动态库符号文件的情况下,如何静态链接动态库?

1.使用 Microsoft Visual Studio Tools 命令行命令生成 xxx.def 文件,进而使用 xxx.def 文件生成 xxx.lib 文件。

例子:

打开命令提示符

它可以在Visual Studio工具菜单项中找到:开始/程序文件/ Microsoft Visual Studio / Visual Studio工具/ Visual Studio命令提示符。

提取符号

在命令提示符下键入:

dumpbin / exports“C:\ Program Files \ VideoLAN \ VLC \ libvlc.dll”>“C:\ Program Files \ VideoLAN \ VLC \ libvlc.def”

编辑libvlc.def文件并修改它以获得如下内容:

EXPORTS
libvlc_add_intf
libvlc_audio_get_channel
libvlc_audio_get_mute
libvlc_audio_get_track
libvlc_audio_get_track_count
libvlc_audio_get_track_description
libvlc_audio_get_volume
...

或者,以下命令将自动生成DEF文件:

echo EXPORTS> libvlc.def
for / f“usebackq tokens = 4,* delims = _”%i in(`dumpbin / exports“c:\ Program Files \ VideoLan \ VLC \ libvlc.dll”`)如果%i = = = libvlc echo%i_%j >> libvlc.def

生成.lib

仍在命令提示符下键入:

lib / def:“C:\ Program Files \ VideoLAN \ VLC \ libvlc.def”/ out:“C:\ Program Files \ VideoLAN \ VLC \ libvlc.lib”/ machine:x86

当然,您需要根据您的配置调整路径。

瞧瞧!你拥有它,现在你可以在你的程序中链接libvlc.lib

https://wiki.videolan.org/GenerateLibFromDll/

如何生成动态库 .dll 的符号 .lib 文件?的更多相关文章

  1. 使用命令行生成动态库dll

    1.安装开发工具,比如visual studio或者mingw等等.下面以visual studio编译器cl作为讲解. 2.导出dll中的函数基本使用两种方式,可以使用关键字__declspec(d ...

  2. Qt中添加静态库.lb,.a和动态库.dll,.so,头文件和.cpp文件

    添加步骤 1.-Qt Creator中,"项目"------"添加库"2.把静态库和动态库文件放到项目文件夹中3.在.pro文件中会添加如下代码: - 添加动态 ...

  3. 动态库dll使用module.def文件导出函数(像静态库一样使用)

    1.新建文件module.def. 2.动态库工程上右键->属性->链接器->输入->模块定义文件编辑它写入module.def 3.下面为module.def实例(smart ...

  4. C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)

    1. 首先,如何制作一个静态库(lib)? 额, 对于静态库,我们知道,里头是不应该有Main函数,它只是一个配合文件.之所以称之为lib静态库,其实就是指,我们需要用到lib里头的函数时,我们才会去 ...

  5. Qt生成和调用动态库dll,和静态库.a(windows和linux通用)

    系统1:ThinkPad T570.Windows10.QT5.12.2(Qt Creater 4.8.2)一.动态库.dll的创建和调用1.在qtcreater中按如下步骤创建动态库,动态库名为my ...

  6. C++与C#有关对库(动态库dll,静态库.lib)文件的调用

    1 动态库的相互调用 1.1 C#调用C++ dll步骤(只能导出方法): 1. c++建立空项目->源文件文件夹中添加cpp文件和函数 2. c++属性设置中,配置类型设置为动态库dll,公共 ...

  7. 如何使用 VS生成动态库?

    如何使用 VS生成动态库? //.cpp 文件默认定义了 __cplusplus 宏 #ifdef __cplusplus extern "C"{ #endif xxx #ifde ...

  8. Qt编写自定义控件插件开放动态库dll使用(永久免费)

    这套控件陆陆续续完善了四年多,目前共133个控件,除了十几个控件参考网友开源的代码写的,其余全部原创,在发布之初就有打算将动态库开放出来永久免费使用,在控件比较完善的今天抽了半天时间编译了多个qt版本 ...

  9. qt使用动态库(DLL)

    本文主要讲解在QT开发环境中如何使用VC生成的DLL及QT自身生成的DLL.至于其它情况本文不作讨论. 连接库分为2种 (1)动态连接库,通常有.h .lib .dll三个文件,功能实现在dll中 ( ...

随机推荐

  1. 放大的X 【杭电-2655】 附题

    /* 放大的X Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  2. 导入解析excel小结

    导入解析excel小结 控制器例子:

  3. springboot学习(三) springboot文件配置

    1.简介 springboot没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特 ...

  4. Atitit.aticmd v4  新特性q39 添加定时器释放功能

    Atitit.aticmd v4  新特性q39 添加定时器释放功能 V1  实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3  stdout stderr统一重新定向 V4  添加定 ...

  5. Atitit.  c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0   attilax总结

    Atitit.  c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0   attilax总结 1.1. C# 1.0-纯粹的面向对象 1.2. C# 2.0-泛型编程新概念 1.3. ...

  6. E - Leading and Trailing 求n^k得前三位数字以及后三位数字,保证一定至少存在六位。

    /** 题目:E - Leading and Trailing 链接:https://vjudge.net/contest/154246#problem/E 题意:求n^k得前三位数字以及后三位数字, ...

  7. sha1加密算法

    public static void main(String[] args) throws UnsupportedEncodingException { /* * 获取jsapi_ticket * * ...

  8. 【转】windows下python开发环境搭建

    1 -- 安装python的前期准备 Python开发有众多工具,又以Eclipse+Pydev最为常见.Eclipse平台对开发同学来讲,肯定是如雷贯耳,自不用废话.而PyDev是Eclipse平台 ...

  9. EntityFramework(EF) 单表与主从表的使用

    一.单表Reader 1 构建Reader类 public   class Reader    {       public int ReaderID { get; set; }       publ ...

  10. android自定义View_4——自定义属性的格式选择

    reference - if it references another resource id (e.g, "@color/my_color", "@layout/my ...