【问题标题】:Prevent temporary object files hitting disk in MSVC防止临时对象文件在 MSVC 中撞击磁盘
【发布时间】:2020-06-15 11:27:14
【问题描述】:

假设我有一个名为 test.cpp 的 CPP 文件。在使用 gcc 9.3.0 的 Ubuntu 上,我可以使用以下命令:

  • gcc -c test.cpp(创建目标文件test.o)
  • gcc test.o -o test.out(从目标文件test.o创建可执行文件test.out
  • gcc test.cpp -o test.out(只创建最终的可执行文件test.out

最后一个选项很好,因为编译后没有中间目标文件。 (我不确定 gcc 是否在内存中执行所有操作,或者目标文件是否在链接期间被清理之前暂时撞击磁盘)。

在 Windows 上,cl test.cpp /link /out:test.exe 创建可执行文件 test.exe,还创建目标文件 test.obj

有没有办法阻止 MSVC 创建中间对象文件?或者,是否有请求 MSVC 清理的链接选项?

【问题讨论】:

    标签: c++ visual-studio visual-studio-2019


    【解决方案1】:

    没有。最好的办法是使用/Fo flag.obj 文件转储到%TMPDIR% 左右。

    不要对大型构建执行此操作,因为 foo/Bar.cppqux/Bar.cpp 将映射到 Bar.obj 并给您带来非常有趣的编译/链接错误。

    【讨论】:

      猜你喜欢
      • 2014-06-01
      • 2011-04-02
      • 2012-06-23
      • 2015-12-14
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 2015-11-29
      • 2016-08-24
      相关资源
      最近更新 更多