求助: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函数。的主要内容,如果未能解决你的问题,请参考以下文章

减小 Qt GUI 应用程序的大小

我如何为 Android 和 QT 创建者使用 RTL SDR 库?

求助,QT creator怎么定义全局变量

qDebug Qt 控制台应用程序输出到 Qt Creator 应用程序输出

QtCreator如何将Application Output显示到Text Edit控件中

Qt GUI 在 Android 上的行为不正常