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

xiaoxiao2021-02-27  325

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

说明一下具体情况:

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

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

转载请注明原文地址: https://www.6miu.com/read-3112.html

最新回复(0)