免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1865 | 回复: 6
打印 上一主题 下一主题

c如何调用c++的函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-06 23:17 |只看该作者 |倒序浏览
想在c文件使用STL,应该怎么办?
目前是写了一个.cpp文件,在里面使用了STL,然后在C文件中调用了CPP定义的函数
但不知道怎么将这两个文件一起编译?

论坛徽章:
0
2 [报告]
发表于 2010-06-07 00:30 |只看该作者
在C++文件里写一个extern "C"的接口函数,C程序调用C++文件中的该接口函数即可。这个接口函数可以任意使用C++中的功能,只是输入输出参数及返回值需要满足C的类型要求即可。

论坛徽章:
0
3 [报告]
发表于 2010-06-07 09:16 |只看该作者
那同时编译.c和.cpp文件时,使用gcc还是g++编译?
(我的开发环境是在linux下)

论坛徽章:
0
4 [报告]
发表于 2010-06-07 09:43 |只看该作者
最好是把那个c文件改成cpp再编译。
用g++编译好然后打包成静态库应该是可以在c文件里面引用的。最好用dlopen函数直接引用,不要include那个cpp的头文件。

论坛徽章:
0
5 [报告]
发表于 2010-06-07 11:23 |只看该作者
为何不直接用C++呢???????

论坛徽章:
0
6 [报告]
发表于 2010-06-07 13:45 |只看该作者
用gcc编译(也可以设置用g++编译.cpp文件,都一样),链接.cpp和.c生成的.o文件时,用参数-lstdc++以包含C++标准库(如果使用了的话)。

论坛徽章:
0
7 [报告]
发表于 2010-06-07 14:10 |只看该作者
谢谢了。问题解决了 dlopen搞定
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP