问题标签 [cl.exe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
559 浏览

visual-studio-2010 - 在命令行上编译时出现 LNK2001 错误,但在 IDE 中没有

我有一个在 Visual Studio 2010 中开发的大型 VC++ 项目,我需要能够使用 CL.exe 从命令行构建它。在IDE中,项目构建成功,但我一直无法在命令行上构建它。

我主要处理链接器错误并将其归结为一个:

我在调试文件夹中找到了一个名为“LargeProject.log”的文件,它显示了在 IDE 构建时从 IDE 调用的精确命令行参数。我在这里列出了它们,如果有帮助的话。

(有关一些更新,请参阅此问题底部的编辑说明)

如您所见,我按顺序运行每一个(直到出现错误)并将内容转储到 testDump.txt。这是第一个 link.exe 命令之后的 testDump.txt 的内容

我很困惑,我在命令行上收到了这个错误,但不是来自 IDE,它可能只是在幕后运行这些命令。还值得注意的是,我已经从命令提示符窗口运行了 vcvars32.bat 文件,因此它不可能是本地环境变量问题。

编辑: 我尝试添加msvcrt.lib到链接命令中的库列表。这产生了一个新的链接器错误:

我读过这意味着项目中没有定义正确的入口点。即,项目中应该有一个 WinMain() 函数作为应用程序的入口点。这似乎合乎逻辑,但我还没有找到该功能,并且重申一下,该项目在 IDE 中编译和链接良好,并且大概我从中获得这些命令的日志文件只是列出了 IDE 无论如何都在做什么。

似乎还有其他 CRT 库。我试过msvcprt.lib了,但是在我添加任何东西之前,它会产生一个相同的错误消息。存在的其他类似 .lib 文件是msvcmrt.lib, msvcmrtd, msvcprtd, msvcrtd, msvcurt, 和msvcurtd. 这些库文件之间有什么区别,有人如何选择使用哪一个?

0 投票
4 回答
3125 浏览

batch-file - Is there a way to run vcvars32.bat every time I start a cmd?

I'm using cl in cmd and having to run vcvars32.bat every time I open a cmd window is really a pain in the axx. Can anyone offer a way of running it automatically?

0 投票
1 回答
16241 浏览

c - Visual Studio C++ 与 psapi.lib 的链接

我编写了一个调用函数 GetModuleInformation() 的 C 程序,该函数在 psapi.h 中定义

我正在使用 Microsoft Visual Studio C++ 命令行编译器 (cl.exe) 来编译和链接程序。

我已经包含了 psapi.h 头文件:

当我尝试使用编译时:

它生成目标文件,但是在链接阶段失败并出现错误:

我还将 psapi.lib 文件放在放置源代码文件 (program.c) 的同一文件夹中,但即便如此,我也会收到与上述相同的错误消息。

如何使用命令行编译器 (cl.exe) 成功链接它?

0 投票
1 回答
897 浏览

windows - 通过 ssh 在 cygwin bash 上运行 cl.exe/MSPDB110.DLL 时出现错误链接错误

在 Windows 7、Visual Studio 2012 上。尝试通过 cygwin bash 构建,仅使用 cl.exe 和 cygwin/gnu make。我已经正确设置了我的 bash 环境变量,其中的线索来自;

在 Cygwin shell和 VS2008 命令提示符 + Cygwin中调用 cl.exe(MSVC 编译器)

(我只是在运行 vcvarsX.bat 之前和之后区分环境变量,稍微调整该列表并将其设置在我的 bash 会话中。它有效)

我有一个 hello world test.c 和 makefile,它们在控制台 cygwin bash 中构建良好,但如果设置了 /debug 开关,则在 ssh 中失败。没有 /debug 它构建。

这是我的 ssh 会话的副本,不带和带 /debug 开关;

http://pastebin.com/zY39i2c6

我认为链接错误(靠近底部)是错误的,因为它在控制台 bash 中运行良好。只有在设置了 /debug 开关时,才会出现链接错误的 ssh bash 。

我怀疑 MSPDB110.DLL 是一个“windows”模块(与真正的控制台程序相反)并且无法在 ssh 进程中执行,正如我在尝试在 cygwin ssh 中运行其他非控制台程序时所看到的那样. 但这只是我的猜测。在 pastebin 中,您还会看到我显示了 cl.exe 和 mspdb110 的来源(靠近底部的 cl.exe)。

我发现许多帖子/线程在 cygwin bash 会话中讨论这样做,但没有找到任何人试图通过 ssh 这样做。

感谢任何建议。

谢谢迈克

0 投票
1 回答
4158 浏览

visual-c++ - vs2012 cl.exe 相当于 gcc -std=c++11 是什么?

是否有可以传递给 VS2012 或 VS2013 cl.exe 的命令行选项来指定我是要使用 C++11 还是 C++98 语法?就像 GCC 的 -std=c++11 选项一样。

0 投票
4 回答
2169 浏览

c++ - 命令行中的 Visual Studio

我正在使用 Visual Studio 2010 创建一个小的 c++ 可执行文件。由于我现在想使用不同的编辑器,我必须从命令行调用cl.exe和 link.exe。

VS 在 Project->Properties->C/C++->Commandline->Linker->CommandLine
但是,它们的工作方式并不尽如人意:

在编译器命令行中,我添加/c并删除了文件重命名内容/Fp /Fa /Fo /Fdhttp://msdn.microsoft.com/en-us/library/fwkeyyhe.aspx

在链接器命令行中,我删除了/MANIFESTand /Manifest ( http://msdn.microsoft.com/en-us/library/y0zzbyt4.aspx )

结果是这样的:

生成的 exe 的工作方式与我使用 GUI 构建它的方式相同,但问题是由于某种原因它是 145kb 而不是 22kb 。我应该接受这一点,还是 GUI 有什么明显的东西我错过了?

0 投票
1 回答
6411 浏览

compiler-errors - 设置 Code::Blocks 以使用 MPICC.exe 编译 MPI 程序

在一些帮助下,我成功地从 Windows 上的命令行编译和运行 MPI 程序。现在我试图用我的 IDE code::blocks 编译这个程序,但它失败了。

Under Settings -> Compiler... -> Other Settings -> Advanced Options -> Command line macros我删除了所有不必要的标志并简单地离开了:

$compiler $file

Settings -> Compiler... -> Toolchain executables我只是有mpicc.exeC prgrams 和mpic++.exeC++ 的 MPI 包装器。

当我现在单击Build(Ctrl +F9) 时,会打开一个小弹出窗口,说明:

cl.exe - application error

错误代码是0xc00000be

在 code::blocks 的构建日志窗口中,我得到:

在这里我又被困住了,还有几个问题?

  1. 我应该保留 mpicc.exe 包装器吗?
  2. code::blocks 总是尝试调用链接器等。我在哪里可以关闭它?
  3. 我想从一开始就将我的编译器从 cl 更改为 gcc,我应该先尝试吗?

编辑1:

我相信我确实按照应有的方式设置了所有内容,但是我仍然收到带有错误代码的弹出窗口。我会摆弄它。如果没有任何效果,我会尝试重新安装 code::blocks 也许这会有所帮助。

编辑2:

首先,它仍然没有运行。其次,我相信我现在对发生的事情和出了什么问题有了更好的了解。

通过尝试不同的东西,我尝试在没有 mpicc.exe 包装器的情况下直接使用 cl.exe。我选择了Settings -> Compiler... -> Microsoft Visual C++ 2010,codeblocks 提供给我。尝试构建项目时,我收到了与mpicc.exe. mpicc.exe 在其mpicc-wrapper-data.txt宣言中调用 cl.exe。

因此,借助一些谷歌魔法,我在代码块论坛上找到了这个页面,其他人也有完全相同的错误消息。他们的建议是添加额外的环境路径,这让我思考。在我mpicc从命令行运行之前,我必须先运行vcvarsall.bat,因为我得到了一个mspdb110.dll丢失的错误。所以我仔细看看vcvarsall.bat哪个在调用另一个批处理文件vcvars32.bat。该文件临时添加了 PATH 变量。所以我加了

C:\Entwicklung\CUDA\VS 2012\Common7\IDE\

永久保存到我的 PATH 中,并且mpicc.exe可以在没有任何丢失 DLL 错误消息的情况下调用,但尝试编译时会显示一些链接器错误无法找到advapi32.lib. 我会更深入地研究它,一旦它在命令行上运行而没有帮助,vcvars32.bat我会再次从 CB 尝试它。我希望这会导致我所有的问题。

还有一件事让我有点困惑,没什么大不了的,但是当我卸载 CB 并再次安装它时,CB 可能在 "new" mpi某个地方保存了编译器设置。我检查了我的安装文件夹:卸载后所有文件都被删除了,所以我也删除了.下的CB文件夹USER\AppData\。但是重新安装 CB,编译器设置在 CB 启动时仍然存在,问我是否要导入它们?!?

0 投票
0 回答
2272 浏览

c++ - Qt 5.2 在构建项目时出现 msvc2012 错误

操作系统是 Windows 7 64 位 我用 MSVC 2012 安装了 Qt,然后我安装了 Visual Studio 2012。一切都很好..但是当我尝试构建我的项目时,它说

从德语翻译成英语:

请帮忙!

0 投票
0 回答
520 浏览

c++ - 警告会减慢 C++ 编译速度吗?

编译器警告会减慢编译过程吗?出于我的目的,我专门研究 C++ 编译,通过 Team City 使用 cl.exe。

Robert Greiner 对这个问题的回答表明警告确实会影响编译速度,但似乎没有达成共识或确认链接。

作为背景,我继承的代码会生成 606 警告。

0 投票
1 回答
244 浏览

c - 如何在 C 中做类似 nasm 的结构?

是否有某种方法可以定义已经是其自身的唯一实例的静态结构?就像你可以用 nasm 中的 struc 关键字做的那样?