首页 > 其他分享 >如何判断lib和dll是32位还是64位?答案是使用微软的dumpbin工具,后面讲了如何使用gcc生成lib和dll

如何判断lib和dll是32位还是64位?答案是使用微软的dumpbin工具,后面讲了如何使用gcc生成lib和dll

时间:2023-12-13 22:11:37浏览次数:56  
标签:gcc lib dumpbin 32 dll hello

为什么我会考虑这个问题呢?因为我在使用java去调用一个c的lib库的时候,弹出以下警告: D:\work\ideaworkpaces\jdk21Test001\src\main\java\lib\hello.lib: %1 不是有效的 Win32 应用程序。
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
然后我就在想是不是这个lib库是64为导致的,众所周知,java只能调用32位的。

接下来,我开始讲解如何使用dumpbin。

第一步,找出dumpbin.exe文件。

右键打开文件的所在位置。

当然我会直接告诉你dumpbin.exe文件在那里,就在:

第二步,配置一下,环境变量。

第三步,使用dumpbin.exe

dumpbin.exe /headers Hellolib.lib

结果为:

可以看出,该lib包为64位的。
32位的lib包长这样:

当然dll库也是一样的:

dumpbin /headers HelloDll.dll

插嘴一句,其实gcc生成lib库也是非常简单的

以下是.h头文件和实现.h文件的c源文件

先使用

gcc -c hello.c

生成hello.o文件:

然后将.o文件生成lib库:

ar -cr hello.lib hello.o

结果图:

如果只是想用gcc生成32位的lib库的话,那就要在第一步的时候输入:

gcc -m32 -c hello.c

然后输入下面命令就行了。

ar -cr hello.lib hello.o

如果是想用gcc生成dll文件,也是非常简单的

在上面第一步的前提下,输入以下代码就行了:

ar -cr hello.dll hello.o

结果图:

标签:gcc,lib,dumpbin,32,dll,hello
From: https://www.cnblogs.com/nanshaws/p/17900016.html

相关文章

  • 支撑阻力指标,庄家成本价是可靠的支撑位(无未来,DLL加密)
    本指标依据庄家的成本价设计的,庄家成本价是可靠的支撑位。底层逻辑:庄家是有内幕的,庄家能在价格低位时抄底,庄家控股时,庄家不会让散户获取低价的筹码,所以当股价到达到支撑位时,会有比较大的反弹。庄家也会有出错的时候,在非融券的股票情况下,有以下三种方式:一、庄家极限拉高,可参考*ST......
  • 基于PyQt和websocket,制作一个简单的BiliBili弹幕机(大体思路)
    前言从B站上获取直播弹幕的方式大体有两种,一种是通过调用下面这个接口,通过轮询获取importrequestsroom_id=123456#示例url='https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64......
  • JavaScript Library – Lit
    前言我写过一篇关于Lit的文章,MaterialDesign,AngularMaterial,MDC,MWC,Lit的关系。如今material-webMWC已经发布1.0了,估计Angular也会在不远的将来从material-components-webMDC迁移到MWC。以后,我们要想深入理解AngularMaterial就必须对MWC有一定了解......
  • ubuntu18.04.6 配置Busybox make -C buildroot busybox-menuconfig 遇到提示LD_LIBR
     可以先在终端执行下面命令让LD_LIBRARY_PATH变量的内容变为空白 然后再继续,这时会提示安装g++ 输入sudoapt-getinstallg++又提示权限不够,那就在make命令的前面加上sudo即可: 这样busybox的界面就会出现:  ......
  • Hnswlib 介绍与入门使用
    Hnswlib是一个强大的近邻搜索(ANN)库,官方介绍Header-onlyC++HNSWimplementationwithpythonbindings,insertionsandupdates.热门的向量数据库Milvus底层的ANN库之一就是Hnswlib,为milvus提供HNSW检索。HNSW原理HNSW原理将节点划分成不同层级,贪婪地遍历来自上层的......
  • Python——第五章:hashlib模块
    hashlib模块hashlib模块是Python中用于加密散列(hash)算法的模块。它提供了对常见的哈希算法(如MD5、SHA-1、SHA-256等)的支持,使得开发者可以轻松地在其应用中进行数据的安全散列。以下是hashlib模块中一些常用的哈希算法:MD5(MessageDigestAlgorithm5):产生128位的哈......
  • 使用Visual Studio 2022 创建lib和dll并使用
    对于一个经常写javaWeb的人来说,使用VisualStudio似乎没什么必要,但是对于使用ffi的人来说,使用c或c++编译器,似乎是必不可少的,下面我将讲述如何用VisualStudio2022来创建lib和dll,并使用。静态库的创建并使用首先打开VisualStudio2022,点击创建新项目。选择静态库,然后点击下......
  • Python报错:pkg-config could not find libraries ['avformat', 'avcodec', 'av
    参考:https://github.com/PyAV-Org/PyAV/issues/238https://pyav.org/docs/6.1.2/installation.html#mac-os-x  =====================  报错信息:C:\Users\liuxue>pipinstallavCollectingavUsingcachedav-0.3.3.tar.gzInstallingcollectedpackages:avRunning......
  • 深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现
     网络和Web开发是Python中不可或缺的重要领域,而其核心模块如urllib、requests和http在处理网络请求、HTTP请求和响应以及Web开发中扮演着关键的角色。这些模块为开发者提供了丰富的工具,使其能够灵活处理网络通信、构建Web应用和与远程服务器进行交互。深入了解这些模块的用法和作......
  • Quick BI 数据分析 - Alibaba Cloud的文档PDF
     下载地址:https://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/download%2Fpdf%2F164487%2F%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590_intl_zh-CN.pdf      ......