问题标签 [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.
cl.exe - GRETA 正则表达式库入门
我需要在 Microsoft Research 提供的 GRETA 正则表达式库上工作。cl.exe
使用Visual Studio 2008 提供的示例程序时,我无法编译和运行示例程序。它给出了一些错误,例如:
它不是参数“T”的有效模板类型参数。
任何人都可以帮助我开始使用 GRETA 吗?
include - cl.exe Difference in object files when /E output is the same and flags are the same
I am using Visual Studio 2005's cl.exe compiler. I call it with a bunch of /I /D and some compilation/optimization flags (example: /Ehsc).
I have two compilation scripts, and both differ only in the /I flags (include directories are different). All other flags are the same. These scripts produce different object files (and not just a timestamp difference as noted below). The strange thing is that the /E output of both scripts is the same. That means that the include files are not causing the difference in object files, but then again, where is the difference coming from?
Can anyone elucidate on how I am seeing two different object files in my situation. If the include files are causing the difference, how come I see identical /E output?
PS. The object files are different not only in the timestamp, but in the code sections also. In fact the behavior of my final executable is different in both cases.
Edit: PSS: I even looked at the /includeFiles output of cl.exe and that output is identical. The object files, however, differ in more than just the timestamp (in fact, one is 1KB bigger than another!)
c - 从 cmd.exe 运行时基于 C 的控制台应用程序崩溃,在 VS2008 调试器中运行良好?
不知道这里发生了什么。
我有一个用 C 编写的 Windows 控制台应用程序。当我在 VS2008 中运行它时,它运行良好。如果我从 cmd.exe 提示符运行它,它通常会在 malloc() 中崩溃。我猜这是由于 CRT 库不匹配而导致的竞争条件。
该应用程序很简单。
它调用 WinHttp 层向网站发送 GET 请求,然后吞下回复。那部分似乎工作正常,但是在 WinHttpReadData 之后,程序调用 printf() 将接收到的数据打印出来,这就是 malloc 经常发生崩溃的地方。
但仅限于调试器之外。???
我正在从命令行编译。
如果我用 /MT 编译,我会看到上面的结果,或者什么也没有。如果我使用 /MD 编译,那么它在调试器中运行时挂起,在调用 free() 时会挂起,并且在 cmd.exe 中崩溃(与 /MT 相同)。
一些问题 -
由于 PATH 在 VS2008 中可用,是否存在不同的行为?
原因可能是我的机器上没有安装 VC90 运行时?
我认为通过静态链接 (/MT) 我不需要安装 VC90 运行时?
我还是不明白 /NODEFAULTLIB。这有关系吗?
我习惯于制作文件和编译器,而且我知道 C。我不知道 C++,这就是我用 C 编写的原因。但我不理解 Windows 上 CRT 的所有变幻莫测。有人能解开这个谜吗?
windows - 为什么 cl.exe 不生成有效的 Windows 模块?
我有一个简单的 C DLL,它从静态库中公开函数。DLL 编译没有错误,我可以在其上运行 DUMPBIN 以查看导出。但是,当我尝试DllImport
在 C# 中加载它时,它会说:
System.DllNotFoundException:无法加载 DLL 'ei.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)。
当然,它在正确的目录中。因此,我读到尝试 Dependency Walker 可能是个好主意,以防我需要包含其他内容。不幸的是,当我尝试在 DW 中打开我的 DLL 时,我得到了这个:
错误:至少一个文件不是 32 位或 64 位 Windows 模块。
这是我的cl
命令:
这可能是什么原因造成的?
c - 对未解决的外部符号错误感到困惑
我正在尝试使用 VC++ 的编译器构建一个包装库。
ErlDriver.c
构建.bat
当我尝试构建它时,我收到以下链接器错误:
ErlDriver.obj:错误 LNK2019:未解析的外部符号 _WinDynDriverCallbacks 在函数 __driver_output 中引用
erl_win_dyn_driver.h(包含在erl_driver.h中)
因此,如您所见,WinDynDriverCallbacks 是定义声明的。
那么,什么可能导致链接器错误?
c - 如何设置用 C 语言构建、用 CL.EXE 编译的 DLL 的版本?
如果我用 CL.exe 编译 C 语言 DLL 的源代码,如何设置文件属性,包括文件版本、产品名称、产品版本、版权等,以便在 Windows 资源管理器中查看这些属性?
在用 C# 编写的 .NET 应用程序中,我可以使用诸如[assembly: AssemblyVersion("1.2.3.4")]
. 我如何在 C 语言项目中做到这一点?
visual-studio - 当我从 Perl 调用 cl.exe 时,为什么不生成任何输出?
我在运行 cl.exe 时遇到了一个奇怪的问题,这让我很困惑。在一个由 C/C++ 项目组成的大型 VS2008 解决方案中,我有一个项目运行一些脚本来做一些额外的处理。该项目包含一个预构建事件,该事件调用一个 Perl 脚本(ActiveState Perl 在机器上)。这个 Perl 脚本然后调用 cl.exe/E
以生成重定向到文件的预处理输出。Perl 中的代码如下所示:
args.rsp是一个纯文本文件,其中包含一堆用于 cl.exe 的命令行参数,包括/E
在 stdout 上获取预处理器输出。
从 VS2008 命令提示符运行时,这个确切的命令行按预期工作。在我的 Windows XP 机器上构建项目也可以正常工作。但是,在我的新 Windows 7 机器上,当我构建项目时,out.txt最终为空白。我还应该在我同事的一些 Windows 7 机器上添加它,它可以正常工作,而在其他一些机器上则不行。
显然存在某种配置差异,但我不知道它可能是什么。我们检查了 VS2008 SP1 和 ActiveState Perl 的匹配版本。我在 perl 脚本中尝试了无数的解决方法——使用system()
而不是反引号,使用cl.exe /P
输出到文件然后移动文件(文件为空白),取消设置VS_UNICODE_OUTPUT
环境变量(无效)。没有任何改变行为 - 手动运行命令行时会生成输出,但在此项目的预构建事件中运行时不会生成输出。
关于什么样的配置问题可能导致这种情况的任何想法?我几乎没有追求的途径。
c - 可以编译和运行C程序的VB.NET应用程序
这些天来,我正在开发一个可以用来编辑、编译和运行 C 程序的 VB.NET 应用程序。有人可以告诉我如何从我的 VB 程序中调用 cl.exe 进程,以及如何在控制台寡妇本身中运行该程序。
目前我只准备了编辑器。有了它,您可以输入一个程序并将其保存为“.c”扩展名。现在我的表单上有 2 个按钮 - “编译”和“运行”。当用户单击“编译”按钮时,程序应该被传递给 cl.exe 进程,并且错误应该显示在另一个文本框或 DOS(黑屏本身)中。当用户点击“运行”按钮时,刚刚创建的“.exe”文件应该会被执行。
有什么方法可以将一些文件与我的程序一起附加,以便计算机中没有安装“C”的人也可以使用我的应用程序编辑、编译和运行 C 程序?
c - 将标准输出/输入/错误重定向到/从文本框
我正在制作一个可用于编辑、编译和运行 C 程序的 VB.NET 应用程序。我使用了 Process.StartInfo.RedirectStandardOutput 属性。但我无法将它重定向到文本框,因为它不是字符串类型。
如何将来自 cl.exe 进程的输出重定向到我的文本框?