VS2012 编译libmseed源码生成dll文件并调用中遇到的一些问题

本文详细介绍了如何使用VS2012将libmseed源码编译为DLL,并提供了在VS2013中调用该DLL的具体步骤。通过添加必要的路径和配置项,可以成功实现跨项目的库文件调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写这篇文章是因为这个问题在网上搜索都不太符合我的情况,如果能帮助到别人,那就很好了。

说明一下具体情况:

因工作需要,要将libmseed源码编译成dll文件给其他人调用。


libmseed的源码已经很清晰了,用vs自带的nmake工具会很轻松的将libmseed.lib 生成,但是生成dll时会报错,所以选择用VS2012生成dll文件。

首先选择 ‘新建项目’->‘win32’项目,应用程序类型选择 ‘DLL’, 附加选项选择 ‘空项目’,'完成'。

在打开的‘解决方案自愿管理器’中,在项目上右键 ‘添加现有项’ ,将源码都添加到项目中。

右键 ‘属性’->‘连接器’->‘输入’ , 在模块定义文件中 将源码里面的libmseed.def 文件的路径输入进去。 如:F:\libmseed\libmseed-master\libmseed.def

介绍一下def文件: 这里面存了一些函数名 ,在生成dll文件的时候会将这些函数保存在里面,具体的请百度。

然后就可以编译了,生成的dll文件就可以调用了。

十分感谢def文件用法介绍的作者,下面是连接:

http://blog.youkuaiyun.com/huang_xw/article/details/7524448

下面说一下dll文件调用时需要做的一些做法:

如何在编译器(vs2013)里设置调用别人写好的lib和dll步骤:
  1.Tools->options->projects and solutions->VC++ directories分别在包含文件,库文件填加了路径       
     
  (这些路径只告诉编译器怎么找文件,没有说把那里面的文件加入工程.) (若不设置,编译报错:无法打开***文件)       
 
       2.Project->properties->c/c++->general->additional include directories 添加包含文 件      
 
         Project->properties->linker->general->additional library directories 添加库文 件      
 
         Project->properties->linker->input->additional  additional dependencies添加用到的lib       
 
      (这一步也可以在代码中显示调用 #pragma comment(lib, "***.lib") ) 
 
      (若不添加,连接报错:无法解析的外部符号)       
 
       3.将dll文件拷贝到工程debug文件下(如果不拷贝,编译链接不报错,运行报错:无法找到***.dll)切记第三条,
 
上面这些文字来源于百度文库,由于我的原因找不到原链接,请大家见谅。


以上这些内容希望帮助到需要的人,如有错误请指出,谢谢。



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值