带参数“-S -save-temps”的 gcc 将中间文件放入当前目录中

2024-01-11

参数-S -save-temps工作正常,只要我不在同名文件上使用它们。

考虑以下情况:我有一个项目,有一个主目录和一个名为subDir并且在这两个目录中都放置了名为file.c。如果我现在打电话gcc -S -save-temps file.cpp subDir/file.c只有一个具有该名称的中间文件file.i将被生成。

这是预期的行为,作为 man 文件gcc告诉我,当使用时,中间文件将始终放置在当前路径中-save-temps.

我的问题是,我正在从事我事先不知道的项目。很可能有人在他的 Makefile 中构建了上述示例。在这种情况下,我会被卡住,因为我需要两个中间文件。

对我正在构建的系统说几句话(为了更好地理解):我的工具使用make --just-print为了收集调用,将调用项目的 make 文件。我扫描这些调用以查找编译器调用并添加-save-temps and -S选项。目的是获取编译项目过程中使用的每个预处理文件。

您有什么想法,即使上面提到的示例应该出现,我如何才能获取每个预处理文件?


在 gcc 4.5 中你可以使用该选项-save-temps=obj当使用-o选项。这会将中间文件保存在与输出文件相同的目录中,这可以帮助防止当您使用不同的源目录和输出目录具有相同的文件名时出现问题。

gcc -save-temps=obj -c dir1/foo.c -o dir1/foo.o
gcc -save-temps=obj -c dir2/foo.c -o dir2/foo.o

中间文件将另存为dir1/foo.* and dir2/foo.*

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

带参数“-S -save-temps”的 gcc 将中间文件放入当前目录中 的相关文章

随机推荐

  • 管道与重定向到进程

    寻找一些bash专家解释 下一个之间的确切区别是什么 command1 command2 例如经典管道 其中 command1 的 stdout 被重定向到 command2 的 stdin 例如 bash fork 自己两次 更改文件描述
  • 让私有方法返回 String 而不是传递 StringBuilder 的优点和缺点是什么[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在多台机器和硬盘上使用 nginx 提供静态文件

    我有一个项目 它将在部署后存储大量媒体内容 项目使用Python Django 也通过Gunicorn和Supervisor运行 对于静态文件 我将使用 nginx 我通过以下方式进行了基本设置本文 http michal karzynsk
  • 如何从其他类访问jFrame的组件?

    我有两个类 第一个是 NewJFrame java 它的代码是 package javaapplication10 import java awt Label public class NewJFrame extends javax swi
  • 在 Flask 中创建不返回响应的视图函数

    我对网络编程和 Flask 相当陌生 最近我尝试创建的网站遇到了问题 我目前有一个 jquery 过程 它将 post 请求发送到 Flask 中的视图函数 该函数只是增加我的数据库中的一个值 并且我实际上没有必要在增加该值后返回响应 然而
  • 如果开关盒掉落,如何使 MSVC 发出警告或失败?

    如果我的 switch 语句之一有一个不会中断的情况 我希望收到警告 错误 这可能吗 switch i case 1 cout lt lt one forgot to break here I want to be warned about
  • .pem、.cer 和 .der 之间有什么区别?

    两者有什么区别 pem cer and der 据我所知 cer包含公钥 是否有任何开放框架可用于使用此公钥加密我的数据 pem cer and der都是可能包含 X 509 v3 证书的文件的文件扩展名 The der扩大 DER 是对
  • iPhone Flash 中的不同屏幕尺寸? (出现黑条)

    我是整个编码世界的新手 而 ActionScript 3 是我第一次真正的体验 如果我不能立即理解您的答案 很抱歉 我在 AIR for iOS 中使用 Adob e Flash CC 构建了一个 iPhone 应用程序 所有代码都位于时间
  • Angular 6:如何使用 Angular Material 隐藏无线电圆圈并使用 NgStyle 来检查答案?

    我在两件事上遇到了麻烦 隐藏 mat radio group 的圆圈 如果选中 请将 p 标签背景更改为蓝色 我尝试使用 ng deep 覆盖 css 属性并将颜色更改为白色 尝试配置 invisibility hidden 但没有成功 另
  • 导航属性“SenderId”不是类型“Conversation”上声明的属性

    当我尝试更新数据库时 出现以下错误 导航属性 SenderId 不是类型 Conversation 上声明的属性 验证它是否未从模型中显式排除并且它是有效的导航属性 Edit 我认为问题在于对话和用户之间的映射关系 因为对话和用户以两个一对
  • DTLS 和 TLS 之间的区别

    TLS 和 DTLS 之间的功能区别是什么 使用 TLS 与 DTLS 时应用程序流程 协商有何不同 基本上 DTLS 是在数据报 UDP DCCP 等 上构建 TLS DTLS 有意与 TLS 类似 只不过 DTLS 必须解决两个问题 数
  • (异步)NSURLConnection:下面发生了什么?

    我知道它必须处理启动线程来发出网络请求的丑陋 然后可能调用performSelectorOnMainThread 用我的委托方法 我知道怎么做use在进行 iOS 编程时 它效果很好 但是 我想知道如何使其在 例如 命令行实用程序的上下文中
  • 在keycloak登录页面显示应用程序名称

    我有两个应用程序App1 and App2与相互作用keycloak用于用户身份验证 我想在以下位置显示应用程序名称keycloak登录页面 例如 如果用户正在登录App1 the keycloak登录页面应显示 登录到 App1 同样的情
  • 如何在 Travis 中显示 HTML 格式的输出文件?

    我正在尝试使用 Travis CI 在 Bintray 上部署 Android 库 但是当我上传我的仓库时 我得到了这个 Ran lint 变体发布 发现 6 个问题 Ran lint on variant debug 6 issues f
  • 存储轮播图像的最佳方式是什么?

    我正在使用 Ruby on Rails 我的目标网页上有两个轮播 我想知道存储和显示这些图像的最佳方式是什么 选项一 将图像放入assets images并在轮播中显示它们 如果这是一种好方法 我可以循环浏览文件夹中的图像还是必须指定每个文
  • 我可以在 WinRT 应用程序中使用 Sqlite (javascript) 吗?

    是否可以在 Windows 8 winRT javascript 应用程序中使用 Sqlite 数据库 我想要实现的是下载一个 Sqlite 数据库并在使用前将其存储在本地存储中 我相信某种形式的本地存储可用于基于 javascript 的
  • 从头开始创建 geom / stat

    我不久前刚刚开始使用 R 目前正在努力加强我的可视化技能 我想做的是创建箱线图平均钻石作为顶部的一层 参见下面链接中的图片 我还没有找到任何可以执行此操作的函数 所以我想我必须自己创建它 我希望做的是创建一个几何或统计数据 让这样的事情能够
  • Azure 服务总线重试策略不会改变行为

    我试图了解 Azure 服务总线上的重试策略 但它没有按我预期的方式工作 我有以下代码 它既侦听消息又将消息发送到特定的天蓝色队列 using System using Microsoft ServiceBus using Microsof
  • 如何更改 C# 中 UWP 应用中按钮的背景颜色?

    我有一个简单的 我需要每秒改变按钮的颜色 我用这个代码btnBlue Background new SolidColorBrush Windows UI Colors Blue 但它不包含我在 xaml 中使用的自定义颜色 例如 FF30B
  • 带参数“-S -save-temps”的 gcc 将中间文件放入当前目录中

    参数 S save temps工作正常 只要我不在同名文件上使用它们 考虑以下情况 我有一个项目 有一个主目录和一个名为subDir并且在这两个目录中都放置了名为file c 如果我现在打电话gcc S save temps file cp