求助:QtCreator创建的QtGui应用中,如何调用libxx.so中的C函数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助:QtCreator创建的QtGui应用中,如何调用libxx.so中的C函数。相关的知识,希望对你有一定的参考价值。
如libxx.so中有个 int add(int i),我要在Qt中用这个函数,怎么用呢? 我的做法如下:.pro中添加LIBS += .so的路径,void* dlname=dlopen("./libxx.so",RTLD_LAZY); int (*fx)(int)这步错,但 这种写法Uc用过是可以的,这里不行,qt中要求void* (*fx)。 fx=dlsym(dlname,"add");fx(1)这步错fx cannot be used as a function。请大侠指教!!
参考技术A 可能你的是动态库linux:LIBS += -L your_lib_path -lyour_lib/追问
这都加了,QT中构建 dlopen都没错,希望大侠试试 编译个动态库 int add(int r) r=r+1;return r ,gcc -add.c -fpic -shared -o libadd.so -lphread -ldl 在qtGui应用中试下,也不麻烦。小弟比较着急,多谢。 ubuntu下我都试了,fcntl的函数都可以的,在qtGui应用中没搞定。
追答我不知道你是什么系统,我在ubuntu系统下加上静态动态库是可以的,还是你的QT配置不对?
追问把代码发一下呗,我看下和我的哪不一样。
追答那是我自己的QT工程 亲 不是代码问题
追问我看看 你调用 fcntl的那几个函数就行,
我如何为 Android 和 QT 创建者使用 RTL SDR 库?
【中文标题】我如何为 Android 和 QT 创建者使用 RTL SDR 库?【英文标题】:How can i use RTL SDR libs for Android and QT creator? 【发布时间】:2015-02-14 13:56:15 【问题描述】:我想问如何将 rtl-sdr C 库与 QT creator 一起用于 android 应用程序。你知道我该怎么做吗?我使用 QT/C++ 作为语言。
【问题讨论】:
【参考方案1】:如果您想在您的 Android 应用程序中使用 rtl-sdr c 本机库,您必须使用 JNI 技术并在您的 Android 应用程序项目中添加本机支持。您应该下载 android ndk 并开始使用它。更多信息,请参考here。
【讨论】:
你能帮我写一下android.mk文件吗? @xmaze 可以参考ndk的docs
下的文档学习如何编写自己的Android.mk
但是 rtl-sdr 库也需要 libusb,我该怎么做,需要一起编译库?
是的,您可以在构建 rtl-sdr 库时将 libusb 添加到 LOCAL_SHARED_LIBRARIES
。以上是关于求助:QtCreator创建的QtGui应用中,如何调用libxx.so中的C函数。的主要内容,如果未能解决你的问题,请参考以下文章
我如何为 Android 和 QT 创建者使用 RTL SDR 库?
qDebug Qt 控制台应用程序输出到 Qt Creator 应用程序输出