C/C++混合编程编译问题

2023-11-03

以下为本实验使用的编译器版本:

系统环境为:

 

目的:搞清以下几个问题

1.  g++能否编译c文件

2.  g++编出的s文件和gcc编出来的有何异同

3.  __cplusplus宏在何时被定义

4. c调用c++的注意事项

5. c++调用c的注意事项

6. 针对上述问题的makefile怎么写比较好


 

问题1:g++能否编译c文件

g++  -E  hello.c -o   g++_hello.i

gcc   -E  hello.c -o   gcc_hello.i

用beyond compare去对比一下二者的异同,可以看到

g++_hello.i关键是多了这个extern "C" 然后把stdio.h中的函数声明和类型定义全部包住

“这个标识符的作用把标识符作用域的数据类型采用gcc去编译”

【我感觉有点不对,这可能是stdio.h中自带的#ifdef __cpluplus导致的,而不是预处理器搞的,我来看一下】

 上面是预处理的部分,下面看一下编译结果的异同

gcc -S hello.c -o gcc_hello.s

g++ -S hello.c -o g++_hello.s

对比结果如下图所示,显然对于c文件的编译,g++还是对函数名动了手脚

这里有个疑惑,为什么是.arch armv6,我的树莓派明明是armv7的架构啊?

 

可以看到,生成的汇编指令中的函数名是不同的,生成的汇编指令也不同,这里和这篇文章说的就开始有出入了

后缀为.c的文件,gcc当做c程序去编,g++当做c++程序去编

https://blog.csdn.net/qq_21792169/article/details/85097822

gcc  -c hello.c -o gcc_hello.o

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++混合编程编译问题 的相关文章

  • Java语音技术之FreeTTS

    转自 微点阅读 https www weidianyuedu com content 0017809736406 html Java语音技术之FreeTTS Java提供了语音API技术用于支持应用程序或Web页面中的人机语音交互 其核心技
  • Flash Download failed - “Cortex-M3“解决方法

    前几天在玩STM32F1的时候 烧录代码的时候出现这样一个错误 Error Flash Download failed Cortex M3 首先肯定要看配置问题 采用不同的仿真器 需要配置的选项就不同 这个完全可以自己看产品说明 当确定配置
  • vscode资源管理器隐藏配置文件的显示

    资源管理器显示太多 开头的文件 大多是配置文件 显示过多造成查看混乱 如何隐藏这些文件呢 左下角点击设置按钮中的设置 点击如图所示的按钮 在弹出的settings json 中添加如下内容并保存 files exclude true 注意
  • Nginx报错[emerg]: unknown directive “”

    前言 今天用记事本修改Nginx中的conf配置文件 由于自己没有备份 导致出问题 解决了两个小时都没有解决掉 不过遇到问题是好事 可以解决 如果有备份遇到问题也许不会一直去解决吧 但是 如果工作中的项目 由于自己的不备份 随意改动 影响项
  • 【C++入门】C/C++的(静态)断言用法总结

    1 C语言的断言 1 1 函数原型 include
  • linux0.11中的fork实现和一些注意事项

    最近几天刚开始在读代码 读的挺爽的 不过碰到了很多问题 慢慢来吧 有一个fork的系统调用一直没弄明白 查了一下再CSDN上有一篇好文 记录一 下 顺便自己添加一些自己的想法 下面是思路和提问 内核是linux0 11版本 里面的fork
  • Java刷新bean重新加载bean 上下文 刷新bean

    Autowired private ApplicationContext applicationContext 可以为接口或者业务方法被调用 public void reloadInstance 获取上下文 DefaultListableB
  • Transformer 训练优化

    前言 自 BERT 出现以来 NLP 领域已经进入了大模型的时代 大模型虽然效果好 但是毕竟不是人人都有着丰富的 GPU 资源 在训练时往往就捉襟见肘 出现显存 out of memory 的问题 或者训练时间非常非常的久 因此 这篇文章主
  • C语言深入学习--checklist6:函数、变量

    函数 1 如何查看函数在内存中的地址 打印该函数名的值就可以了 函数名是一个const的函数指针 2 如何给一个函数指针赋值 下面这个例子 函数指针的赋值和调用都有了 include
  • VNC远程连接(Win连Linux)

    VNC是主流Linux发行版内置的图形化远程工具之一 1 在Linux上启动VNC Server 执行vncserver命令 2 直接运行 vncviewer exe 系统会出现 Connection details 对话框 在 Conne
  • Mol Cell Proteomics.

    大家好 本周分享的是发表在MCP上的一篇关于鸟枪蛋白质组学中的错误率的文章 题目是Integrated identification and quantification error probabilities for shotgun pr
  • Android 仪表盘 图片 中心 旋转

    因为项目需求 需要做一个基于仪表盘方式的数据显示方式 在网上一会 google 一会 baidu 最后得来的也就是对 Matrix 的几个解释 之前还被 hdpi mdpi ldip 搞得晕头转向的 郁闷了许久 但是今天终于搞定了 心情愉悦
  • PID整定二:基于Ziegler-Nichols的频域响应

    PID整定二 基于Ziegler Nichols的频域响应 1参考 2连续Ziegler Nichols方法的PID整定 2 1整定方法 2 2仿真示例 1参考 1 1根轨迹图的绘制及分析 1 2计算机控制技术01 3 4离散系统的根轨迹分
  • 蓝桥杯python组算法模板与习题

    目录 一 一些简单的处理技巧和语法 1 小技巧 1 1 python中的快读 sys库 1 2 python程序测试时间 仅供参考实际比赛可能也没啥用 1 3 python中日期处理等问题小技巧 2 基础语法 2 1 首先就是标准格式化输入
  • Centos系统安装Tomcat(Tomcat7,Java8-jdk1.8)

    以前经常使用java8 也就是java jdk1 8 和tomcat7开发web系统 怀旧记录一下在centos7系统里安装部署tomcat7 同时部署多个tomcat7的方法 解决tomcat7在centos7系统启动很慢的问题 apac
  • OLED显示模块驱动原理及应用

    OLED显示模块驱动原理及应用 本文以中景园OLED显示模块为例 介绍模块的应用和OLED显示及驱动的基本原理 文中介绍了显示模块 SSD1306驱动芯片以及GT20L16S1Y字库芯片相关技术内容及原理 并加上了作者的理解和应用记录 一
  • 【计算机视觉

    文章目录 一 A Dataset of Multispectral Potato Plants Images 二 Active Terahertz 三 Apron Dataset 四 AquaTrash 五 BBBC041 P vivax
  • 电脑开机转圈圈不停-转圈后系统各窗口闪退-桌面黑屏解决探讨

    如题 如果在电脑出现开机黑屏 进入系统后仍系统闪退等问题后 那么可能是因为某些系统文件或网络相关的配置文件损坏或配置错误导致的 通过重置 Winsock 目录 可以恢复网络连接的正常运行 同时也可以修复与网络相关的系统问题 从而才能使电脑恢
  • (20200920)编程每日一题_C程序设计_计算整数段和

    1 描述 输出从整数A到整数B的所有整数以及这些数的和 来源 https pintia cn problem sets 14 problems 794 2 输入格式 输入在一行中给出2个整数A和B 其中 100 A B 100 其间以空格分
  • 改进排序算法:快速排序(对冒泡排序的改进)

    快速排序的基本思想 通过一趟排序将待排序记录分割成独立的两部分 其中一部分记录的关键字均比另一部分记录的关键字小 则可分别对这两部分记录继续进行排序 以达到整个序列有序的目的 Partition函数的作用 选取当中的一个关键字 将它放到一个

随机推荐

  • 150名打工人被AI判定效率低遭开除,“属实是人工智能,能治工人“

    人工智能 能治工人 惨还是打工人惨 谁能想到 最近又有俄罗斯一家游戏支付服务公司直接用AI算法开除了150名员工 判断依据就是通过后台数据看员工有没有 摸鱼 老板给这批 不幸 的打工人发的解雇邮件是这么写的 您收到这封电子邮件是因为我的大数
  • weex:使用list实现下拉刷新和上拉加载更多,书籍+视频+学习笔记+技能提升资源库

    this refreshing true setTimeout gt this lists 1 2 3 4 5 this refreshing false 2000 onpullingdown event modal toast messa
  • 密码学基础

    密码学基本概念 密码学 Cryptology 是结合数学 计算机科学 电子与通信等学科于一体的交叉学科 研究信息系统安全的科学 起源于保密通信技术 具体来讲 研究信息系统安全保密和认证的一门科学 密码编码学 通过变换消息 对信息编码 使其保
  • 微信小程序上线流程

    1 登陆小程序后台 登陆地址 https mp weixin qq com 2 将项目中测试appid换成正式appid 正式appid 小程序后台 gt 开发管理 gt 开发设置 测试appid 小程序开发工具 gt 右侧详情 gt 基本
  • 软件系统概要设计的三大要素

    概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程 其结果往往以反映交互控件布置 界面元素分组以及界面整体板式的页面框架图的形式来呈现 这是一个在用户研究和设计之间架起桥梁 使用户研究和设计无缝结合 将对用户目标与
  • Python反编译exe文件为py文件

    目的如标题 首先要安装python环境 1 下载pyinstxtractor py文件 地址 链接 https pan baidu com s 1PwQim8B8yau5 MWgKzTKeg pwd 2023 提取码 2023 2 将pyi
  • linux-三剑客(sed、awk、grep)

    三剑客sed awk grep 三剑客与正则表达式是什么关系呢 正则表达式 grep 文本过滤工具 sed 操作 过滤和转换文本内容的强大工具 组合多个表达式 引用 定界符 命令中字符 在sed中作为定界符使用 也可以使用任意的定界符 se
  • 小程序canvas上绘制图片真机不显示

    小程序在画布上绘制图片时真机不显示 分析 小程序的画布不能绘制网络图片 所以需要wx downloadFile 或者wx getImageInfo 方法把网络图片加载到本地再进行绘制 使用wx downloadFile获取到图片的临时路径
  • wireshark 抓取 https

    背景介绍 首先 https双向加密的 如果需要解密数据 除非知道 客户端 服务器 任何一方私钥 否则无法解密 常用手段 基于中间人攻击抓包 使用fiddler 或 charles 实现的是中间人代理 将客户端私钥改为 fiddler 或 c
  • Roslyn介绍

    介绍 一般来说 编译器是一个黑箱 源代码从一端进入 然后箱子中发生一些奇妙的变化 最后从另一端出来目标文件或程序集 编译器施展它们的魔法 它们必须对所处理的代码进行深入的理解 不过相关知识不是每个人都需要知道 除了实现编译器的大法师 因此在
  • 李宏毅机器学习:self-attention(自注意力机制)和transformer及其变形

    目录 self attention self attention的输入 文字处理领域 语音领域 图 自注意力机制的输出 输出序列长度与输入序列相同 输出序列长度为1 模型决定输出序列长度 Self attention 原理 self att
  • codeforces Epic Game 题解

    Simon and Antisimon play a game Initially each player receives one fixed positive integer that doesn t change throughout
  • MOT学习 - 卡尔曼滤波

    参考资料 https www bzarg com p how a kalman filter works in pictures 协方差矩阵 https youzipi blog csdn net article details 48788
  • 关于Qt和C++中的反射机制实现与运用(2)

    看到一个很好的实例 这里就转载过来了 原文地址 C 反射机制 一 前言 Java有着一个非常突出的动态相关机制 Reflection 用在Java身上指的是我们可以于运行时加载 探知 使用编译期间完全未知的classes 换句话说 Java
  • Springboot+Vue前后端分离实现token登录验证和状态保存

    token可用于登录验证和权限管理 大致步骤分为 前端登录 post用户名和密码到后端 后端验证用户名和密码 若通过 生成一个token返回给前端 前端拿到token用vuex和localStorage管理 登录成功进入首页 之后前端每一次
  • 从放弃到再入门之拉格朗日对偶问题推导

    https blog csdn net qq 34564612 article details 79974635
  • 【第19篇】SSD论文翻译和代码汇总

    文章目录 摘要 1 简介 2 单次检测器 SSD 2 1 模型 2 2 训练 3 实验结果 3 1 PASCAL VOC2007 3 2 模型分析 3 3 PASCAL VOC2012 3 4 COCO 3 5 初步的ILSVRC结果 3
  • 2021-07-08

    阿里DevOps发布策略简介 前言 DevOps追求更短的迭代周期 更高频的发布 但发布的次数越多 引入故障的可能性就越大 更多的故障将会降低服务的可用性 进而影响到客户体验 所以 为了保证服务质量 守好发布这个最后一道关 阿里逐步发展出了
  • Vue3+Element-Plus中的Tree组件,多选时的赋值与取值

    el tree 是 element ui 提供的一个树形组件 可以在 Vue js 应用中使用 el tree 组件提供了 getCheckedNodes 方法 可以用来获取树形结构中被选中的节点
  • C/C++混合编程编译问题

    以下为本实验使用的编译器版本 系统环境为 目的 搞清以下几个问题 1 g 能否编译c文件 2 g 编出的s文件和gcc编出来的有何异同 3 cplusplus宏在何时被定义 4 c调用c 的注意事项 5 c 调用c的注意事项 6 针对上述问