打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
UC头条:非标准c库函数
userphoto

2023.06.09 山西

关注

1.当有c语言源代码可以直接编译

calc.h

#ifndef_CALC_H#define_CALC_Hintadd(inta,intb);intsub(inta,intb);#endif

calc.c

#include'calc.h'intadd(inta,intb){returna+b;}intsub(inta,intb){returna-b;}

main.cpp

#include#include'calc.h'intmain(void){inta=0,b=0;std::cin>>a>>b;intc=add(a,b);std::cout<<><>< p=''><><><><>

目录结构如下

点击加载图片

编译:当有c语言源代码可以直接编译

换句话说就是.c和.h.cpp在同一层目录下

在ubuntu16.04运行

点击加载图片

格式:

g++(空格)文件名.cpp(空格)文件名.c(空格)-o(空格)输出文件名

g++main.cppcalc.c-omain#有c源代码的时候添加头文件不能用extern'C'{#include'calc.h'}

2.当没有c语言源代码只有c的库不能直接编译

1.把c语言源代码编译成库

先把C语言源文件封装成后缀为.so文件

gcc-olibcalc.so-shared-fPICcalc.c

2.编译c++程序使用c库

要修改main.cpp

#includeextern'C'//表示里面的函数是c语言编写并且已经编译成库{#include'calc.h'}intmain(void){inta=0,b=0;std::cin>>a>>b;intc=add(a,b);std::cout<<><>< p=''><><><><>

现在文件目录结构如下

calc.hlibcalc.somain.cpp

点击加载图片

g++-omainmain.cpp-L./-lcalc

#-L后是库所在的路径,-l后面接库名,比如libcalc.so库名就是calc

点击加载图片

但是在这里编译完成后还是不能运行,需要添加运行路径

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)

点击加载图片

成功运行

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
c语言中星号的作用总结
二条IO 6个按键
快速幂
关于指针变量在内存中所在的长度(转载)
第八章 函数
JAVA之旅(十)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服