c - 为什么 -o 是要从 Microsoft 编译器和链接器中删除的候选对象?

标签 c visual-studio command-line

我遇到了以下情况,我想知道它对我的 Cygwin/GNU 环境有什么影响。我应该使用 -o 以外的东西来命名编译的输出吗?

是否采用了一些新标准,其他编译器是否遵守该标准?

删除 -o 的动机是什么?

DOS 提示符> 输入 compile.bat

cl.exe -D YY_MAIN=1 lex.yy.c libfl.obj -o foobar

DOS PROMPT>编译

cl.exe -D YY_MAIN=1 lex.yy.c libfl.obj -o foobar
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.
lex.yy.c
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.
/out:lex.yy.exe
/out:foobar.exe
lex.yy.obj
libfl.obj

cl:命令行警告 D9035:选项“o”已被弃用,将在未来版本中删除


正如下面的回答所问,他们是否有意在 Windows 和 UNIX 之间造成更大的裂痕?我希望不是。我希望我错过了所有编译器都采用的一些新约定。

最佳答案

是的。你应该使用 /F设置编译器输出选项。

关于c - 为什么 -o 是要从 Microsoft 编译器和链接器中删除的候选对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/719878/

相关文章:

c# - 如何使用 Stub X509Certificate2 修复假货生成

java - 如何编写命令行脚本(不是 ant 任务)来生成 checkstyle 报告?

php - 检查命令是否正在多用户 php 进程中运行

c - 为什么我无法访问包含的功能?

c - 如何使用 strtok_r 对包含空值的字符串进行标记

visual-studio - Visual Studio 2015 中的项目位置

c++ - 安装快板 C++

php - 在 PHP、Window Dos 中启用 Debug模式

c - 两个数组的总和

c - 如何使用 gettimeofday() 或与 Visual Studio C++ 2008 等效的东西?