zoukankan      html  css  js  c++  java
  • MinGW gcc 生成动态链接库 dll 的一些问题汇总 (补充)

    我以前写过一个小短文,介绍MinGW gcc 生成动态链接库 dll 的一些问题。当时写的并不全面。近期又遇到写新的问题。这里记录一下,做个补充。

    通常情况下,dll 中的函数假设採用 _stdcall ,则生成的dll中函数名会被修饰。


    比方有例如以下的函数:

    //dll.c
    int  _stdcall add(int a, int b)
    {
        return a + b;
    }

    终于 dll 文件里的函数名是 add@8

    可是有时我们希望函数名不要加入这样的修饰,就像 windows api 函数那样。

    假设用VS 编译器的话须要我们写个 def 文件才干实现。假设导出的函数非常多,这样是非常繁琐的。
    利用 MinGW gcc 就简单的多。

    以下的语句就能够实现:

    gcc dll.c  -shared -o dll2.dll -Wl,--kill-at,--output-def,dll2.def,--out-implib,dll2.a

    这样生成的 dll2.dll 中函数名就没有多余的修饰。

    这种dll怎样使用了。我们用gcc 编译时须要给链接器传个參数:

    gcc -Wl,--enable-stdcall-fixup main.c dll2.a -o test.exe

  • 相关阅读:
    ajax
    导入操作
    游标的使用
    多行编辑
    IOS开发之--NSPredicate
    asp.net DataTables
    asp.net 汉字转拼音的车祸现场
    Git 连接细节
    Aspose.Words 操作指北
    码云代码管理插件备忘
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5192829.html
Copyright © 2011-2022 走看看