社区
Linux/Unix社区
帖子详情
请问在linux中C语言是否可以调用QT生成的动态链接库
weixin_39493451
2018-02-03 04:58:39
请问在linux中C语言是否可以调用QT生成的动态链接库?
如何可以调用该怎么实现?
...全文
1538
6
打赏
收藏
请问在linux中C语言是否可以调用QT生成的动态链接库
请问在linux中C语言是否可以调用QT生成的动态链接库? 如何可以调用该怎么实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jklinux
2018-02-27
打赏
举报
回复
引用 楼主 weixin_39493451 的回复:
请问在linux中C语言是否可以调用QT生成的动态链接库? 如何可以调用该怎么实现?
应不行吧, qt里是使用c++语言的。c++可以兼容c, 但 c应兼容不了c++. 在qt里使用c的动态库没问题.
zarelaky
2018-02-11
打赏
举报
回复
忘了填类型转换了,void* a 需要指针转换成A*, reinterpret_cast<A*>(a)->show(); delete reinterpret_cast<A*>(a);
zarelaky
2018-02-11
打赏
举报
回复
C++编写的动态库函数名称及使用模型跟c的不太一样,最好将c++功能封装层c调用接口进行使用,否则c++ 的很多特性(RAII, exception等)会被破坏,引起不必要的错误. 简单弄个例子: C++ class A{ public: A(){} ~A(){} void show(){} }; //C code #ifdef __cplusplus extern "C" { #endif // __cplusplus void* A_new() { return new A(); } void A_show(void* a) { a->show(); } void A_destroy(void* a) { delete a; } #ifdef __cplusplus } #endif // __cplusplus
Hello Worm
2018-02-09
打赏
举报
回复
可以,很简单
老马何以识途
2018-02-05
打赏
举报
回复
動態鏈接庫就是有統一標準的,都可以調用。編譯時聲明函數,運行時指定LD_LIBRARY_PATH。
zhxianbin
2018-02-05
打赏
举报
回复
可以,写个 hello world 测试一下就知道了
linux
下
c语言
高级编程入门
本课程主要学习
linux
下的各种API以及
linux
下常用命令的使用,从开发环境的搭建到一行一行的编写小示例来完成各个API的
调用
,通过学习本课程可以很轻松进入
linux
、
C语言
高级编程的世界。
linux
qt
编译
c语言
共享库
Qt
Creator支持编译
生成
c++库,打开新建工程,根据创建向导,能够很快
生成
c++共享库的工程 创建向导上显示的是c++的库,
c语言
的库也同样能够
生成
,下面对
生成
c语言
的共享库做个介绍
生成
c共享库 1.首先按
生成
c++库的方式
生成
工程,过程就不罗列了,根据要求自行选择 创建完成后,
生成
以下几个文件 其
中
testclib是默认
生成
的类,TestClib_global.h是
生成
库需要的宏 2.把testclib.cpp后缀改为.c 3.删掉默认的类,添加自己的接口,每个接口前面
qt
和vs编译
动态链接库
dll,java
调用
在很多场景
中
,需要用java来
调用
c++
动态链接库
,在windows
中
是.dll文件,
linux
中
是.so文件,本篇介绍使用
qt
或vs编译
动态链接库
后,java
调用
的示例,以windows平台为例。
QT
Windows和
Linux
下,
Qt
Creator创建动态库和
调用
动态库(.dll 和 .so)
简述 Windows下
动态链接库
是.dll文件,静态链接库文件是.lib文件。
Linux
下动态库是.so文件。
Qt
嵌套在visual studio时,编译器是MSVC,而
Qt
Creator的编译器是MinGW,针对MSVC和MinGW这两种编译器,作个简单的介绍: MSVC是指微软的VC编译器。 MinGW是指是Minimalist GNU on Windows的缩写。它是一个可自由使...
qt
调用
c语言
函数库_
QT
加载
c语言
编译的动态库
QLibrary lib("./libprint.so");//库的路径if(lib.load()){typedef void(*AddFunction)(char *str[]);//typedef void(__attribute((__cdecl__)) *AddFunction)(char *str[]);这种方法也可以//对于__attribute__ 的有关内容参考http://b...
Linux/Unix社区
23,118
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章