Qt 中如何使用动态库.so文件或者静态库.a文件

Qt 中如何使用动态库.so文件或者静态库.a文件,第1张

对的,.a是静态链接库,相当于windows上的lib文件。.so是动态连接库,相当于windows上的dll文件。用法:

1. 把libstudent.a拷贝到/usr/lib或者/lib目录下

2. 比如你的项目是test.c,可以这么编译:gcc -o test test.c libstudent.a 或者gcc -o test test.c -lstuent

.so库的用法一样。

补充:

早说你在windows平台嘛。。是用cygwin吗?把libstudent.a复制到/usr/lib或者/lib目录下,把dll复制到exe所在的目录。

.a文件是编译exe需要的,.dll文件是exe运行时需要的。

这个问题可能是由分辨率不同的显示器的缩放不同导致的。

Qt5解决方法

在main函数添加:

if(QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))

QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling)

QApplication a(argc, argv)// 放在这一句的前面

登录后复制

Qt6解决方法

在main函数添加一行代码:

QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Floor)

登录后复制

即:

int main(int argc, char* argv[])

{

QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Floor)

QApplication a(argc, argv)\\必须写在这一句的前面

MainWidget w

w.show()

return a.exec()

}

登录后复制

如果没有达到预期效果,可以尝试传入其他参数:

要想给so库打断点,首先要了解什么是so库。SO库(Shared Object Library),又被称为动态链接库,是一种由 *** 作系统管理的共享函数和变量的集合体,它可以被多个应用程序共享使用。打断点,一般指将断点设置在源代码中的某一行,以跟踪运行的状况,以便发现潜在程序BUG或者崩溃等。

要给so库打断点,你需要:

1. 使用GDB调试器(GNU Debugger),它可以帮助你在源代码和执行文件中设置断点。

2. 找到so库文件位置,它存放在确定的目录中,由 *** 作系统定义。

3. 确定打断点的位置,检查函数的参数、局部变量的类型等。

4. 打开so库文件,将断点信息写入其中,并重新加载so库文件。

5. 运行程序,查看断点信息,以便进行分析和调试。

以上就是如何给so库打断点的步骤,了解这些知识可以更好地调试和分析代码,避免BUG和崩溃,提升程序稳定性和性能。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7905291.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存