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

来源:互联网 发布:东方时尚网络授课手机 编辑:程序博客网 时间:2024/05/18 01:09

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

说明一下具体情况:

因工作需要,要将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.csdn.net/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)切记第三条,
 
上面这些文字来源于百度文库,由于我的原因找不到原链接,请大家见谅。


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



0 0
原创粉丝点击