Qt生成动态库及其使用(类似C语言方式的)
2014-07-16 11:11
453 查看
一 、 创建动态库项目
打开Qt Creator,选择New File /Project -〉 Other Project -〉 C++ Library -〉 Shared Library,其他的就一直下一步就可以了
这样工程文件就生成了,一个pro,一个cpp,两个h文件
二、 编写代码
将class相关代码直接去掉,我们要的是C格式的代码。然后,将代码写在cpp那个里面,并将这些函数在。h文件声明,将需要被外部调用的函数在global.h那个文件里声明为extern。
三、 编译
直接点运行,运行成功了直接到编译目录里找dll的文件。有dll文件表示动态库生成成功。
四、 使用dll
在Qt项目里添加库不能自动添加dll的库,只能是lib后缀的,因此我们只能手动添加,将dll加到pro文件即可。如:
LIBS +=
-L$$PWD/lib/ -lmsc\
打开Qt Creator,选择New File /Project -〉 Other Project -〉 C++ Library -〉 Shared Library,其他的就一直下一步就可以了
这样工程文件就生成了,一个pro,一个cpp,两个h文件
二、 编写代码
将class相关代码直接去掉,我们要的是C格式的代码。然后,将代码写在cpp那个里面,并将这些函数在。h文件声明,将需要被外部调用的函数在global.h那个文件里声明为extern。
三、 编译
直接点运行,运行成功了直接到编译目录里找dll的文件。有dll文件表示动态库生成成功。
四、 使用dll
在Qt项目里添加库不能自动添加dll的库,只能是lib后缀的,因此我们只能手动添加,将dll加到pro文件即可。如:
LIBS +=
-L$$PWD/lib/ -lmsc\
$$PWD//lib/asr.dll
上面部分是lib后缀的库,下面是asr.dll是我们刚才生成的。放在lib文件夹里,$$PWD表示当前路径
这样,我们就可以完成了。
源码:
XXX_global.h:
#ifndef ASR_GLOBAL_H #define ASR_GLOBAL_H #include <QtCore/qglobal.h> #if defined(ASR_LIBRARY) # define ASRSHARED_EXPORT Q_DECL_EXPORT #else # define ASRSHARED_EXPORT Q_DECL_IMPORT #endif typedef int MSP_ERROR_CODE; extern void ASRInitConfig(const char *_login_config,const char *_session_param,const char *_grammar_file); extern MSP_ERROR_CODE ASRGetResult(const char *wav_file,char out_text[],int max); #endif // ASR_GLOBAL_H
</pre><pre class="cpp" name="code">
XXX.h:
#ifndef ASR_H #define ASR_H #include "asr_global.h" //class ASRSHARED_EXPORT asr { //public: // asr(); //}; const char* get_grammar( const char* filename ); void release_grammar(const char** grammar); int run_asr(char rec_result[],const char* asrfile , const char* param , const char* grammar); extern void ASRInitConfig(const char *_login_config,const char *_session_param,const char *_grammar_file); extern MSP_ERROR_CODE ASRGetResult(const char *wav_file,char out_text[],int max); void getResult(char out_text[],int max,char rec_result[]); bool indexOfString(const char* sstr,char str[],int len); #endif // ASR_H
XXX.cpp部分只需要将XXX.h里的代码实现就ok 了
相关文章推荐
- Qt动态库的生成和使用
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt(转载于百度winland0704)
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt(windeployqt是单独的程序,放在低版本qt4目录下也可以运行的)
- linux下使用gcc生成静态库和动态库及其使用
- QT程序自动寻找依赖的DLL(Qt官方开发环境生成的exe发布方式--使用windeployqt)
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Linux系统下Qt动态库的生成已经动态库的使用实例图解
- linux 下面 静态库 、 动态库的生成 及其使用
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- qt 静态库 动态库 elf 生成和使用