问题标签 [cl]
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.
c++ - cpp 文件不使用 cl 编译,但在 Visual Studio 中编译得很好
我遇到以下代码无法使用 CL (VS CMD) 编译的问题。它没有编译,而是给了我错误 LN2019。在 VS 中编译相同的代码,编译没有错误。
我将问题追踪到第 36 行:
当我注释掉这一行时,文件编译得很好。用于编译的 cl 命令也很标准:
我错过了一些 cl 参数吗?
c++ - 如何强制 cmake 在没有完整路径的情况下使用 cl.exe?
我正在构建一个使用 CMake 的开源项目(kst,v2.0.8)。我正在使用 CMake v2.8.12.2 和 MSVC 2008 作为编译器,并且正在生成 NMake makefile 以在命令行上构建它。我可以通过此设置成功构建它。这些版本是强制性的,因此我目前无法使用更高版本的 CMake 或 MSVC。
我需要能够使用 HP 的 Fortify 执行 kst 的源代码分析,并能够从命令行使用它,它以两种方式之一工作:
它创建自己的“cl.exe”的非接触模式,在真正的 cl.exe 路径之前设置它的路径,因此在构建期间启动。
将 makefile 中的编译器设置为 Fortify 命令行,例如,
sourceanalyzer -b build_id cl
而不是cl
.
无论哪种方式,我都需要强制 cmake 在其 makefile 中生成的编译器成为 cmake 不会自动检测到的东西。
我已经尝试在按照这个问题中的相同方法运行 cmake 时设置编译器,但 cmake 仍然坚持将 MSVC cl.exe 的完整路径放在 makefile 中。
我还尝试将编译器设置为调用 Fortify,但是当 cmake 测试编译器时它失败了,说它找不到编译器。(我也试过这个没有 FORCED=ON 参数,在这种情况下它说编译器失败了。)
我可能可以搜索和替换 makefile 中的所有编译器调用,但我必须记住在每次 cmake 之后都这样做,而且看到有多个项目/makefile/对 cl 的调用(而不是定义 CC)会很乏味makefile 中的变量)。我宁愿有办法让 cmake 从偏移量中使用所需的编译器。
c++ - 使用 /RTC1 编译时,有时会抑制警告 C4701
这段代码(注意注释行):
给出以下警告(如预期的那样):
但是,当我取消注释中的分配时main()
,不再给出警告。我正在使用/RTC1
命令行选项进行编译以启用运行时错误检查:
我已经尝试了 Visual C++ 2013 和 2015 中最新的 64 位版本的编译器。两者都产生了相同的行为。
问题是:这是编译器错误,还是对此有解释?微软的文档提到 /RTC1 可能会在给出 C4701 的地方给出运行时错误,但它没有说明警告被抑制。
编辑:令人费解的部分是警告仅在buffer[0] = 0;
未发表评论时才会消失。
c++ - C++ 从 Visual Studio 编译源文件
我需要从 Visual Studio 编译一个外部源文件。我从开发人员命令提示符中选择了它:
所以我尝试了这个:
但是 system() 调用的普通 cmd 中不存在命令“cl”
有什么建议如何使用编译器功能吗?
c++ - cl.exe 预处理器定义未设置值
总之,我正在尝试使用 cl.exe 从命令行编译一些 c++ 代码。在你问之前,这个想法是从另一个程序中实际调用这个 cl.exe 命令,该程序动态定义要传递给 cl.exe 的预处理器定义。另外,我正在开发一个可再发行的 cl.exe,这就是为什么有所有的 include 和 lib 路径。
这是 cl.exe 命令:
cl.exe /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D:SERVER=\"{address}\" /D:PORT=\"{port}\" /D:PROTOCOL=\"{protocol}\" /D _UNICODE /D UNICODE /Gm- /EHsc /MT /GS- /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo:.\\Clients\\ /Fd:.\\Clients\\vc140.pdb /Gd /TP /analyze- /errorReport:prompt /I.\\src /I.\\Compiler\\include /I.\\Compiler\\include\\ucrt /I.\\Compiler\\include\\um /I.\\Compiler\\include\\shared .\\src\\*.cpp /link /ERRORREPORT:PROMPT /OUT:\".\\Clients\\{name}.exe\" /NOLOGO /LIBPATH:.\\Compiler\\lib /MANIFEST /manifest:embed /PDB:\".\\Clients\\{name}.pdb\" /OPT:REF /OPT:ICF /LTCG:incremental /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:\".\\Clients\\{name}.lib\" /MACHINE:X86 /SAFESEH /NODEFAULTLIB:msvcrt
重要的部分就在开头:
cl.exe ... /D:SERVER=\"{address}\" /D:PORT=\"{port}\" /D:PROTOCOL=\"{protocol}\"
这些是我试图传递到我的程序中的定义,括号内的值将在我的其他程序中定义。在命令行中输入“192.168.1.2”、“4444”和“TCP”之类的任意值来测试它提供的结果与我的程序相同,因此这不是问题。
这是我的 C++ 代码片段,它试图根据这些定义定义变量:
当我执行 cl.exe 命令时,它可以正确编译,但我得到“错误:VALUES EMPTY!” 每次。我无法弄清楚为什么定义没有通过。
opencl - 使用 opencl 添加数组时输出错误
我正在尝试用 pyopencl 对 2 个数组求和,但我在输出中得到奇怪的数字。
代码:
a = [1 代表范围 (10) 中的虚拟对象] b = [i 代表范围 (10) 中的 i]
打印 sum_arrays_with_cl(a,b)
输出:
我做错了什么?
c - 如何使用 cl.exe 创建 obj 文件
我有一个标头 (.h) 和 ac (.c) 文件。如何在 cl.exe 中使用它们创建对象 .obj 文件?
c - 函数调用中数组分配的差异(gcc和cl.exe)
当我使用 GCC 编译器时,我可以使用函数输入参数在函数中动态分配数组大小,但是当我使用 Windows cl.exe 编译器编译它时同样失败。为什么。?
c++ - 如何通过命令行设置 VC++ 动态链接?
虽然我通过 Visual Studio 设置运行时 DLL 加载没有问题,但在通过 Visual Studio CLI 工具手动执行时遇到了一些麻烦。
假设我们要编译以下 2 个简单的 C++ 源文件,一个用于二进制可执行文件,一个用于 DLL:
主文件
say_hello.cpp
将文件编译say_hello.cpp
为 DLL 然后将其与调用动态链接的步骤是什么main.cpp
?
根据我对 MSDN 文档的阅读,我能够成功编译say_hello.dll
和应用程序,然后运行它并使用以下命令:
不幸的是,这似乎只允许通过say_hello.lib
文件静态链接应用程序(可以通过删除 .lib 和 .dll 文件来确认,这仍然可以让二进制文件成功运行)。
我必须将哪些命令/参数传递给编译/链接阶段才能main.exe
使用 DLL 而不是静态库?
c++ - 如何在 Windows 64 位机器上将 c++ 应用程序编译成 x64 模式?
我已经安装了 Windows SDK 7.1 平台工具,并打开了一个名为Microsoft Windows 7 x64 Debug Build Environment
. 现在我想使用该命令编译一个C++
应用程序(名为main.cpp
) 。cl.exe
编译命令为:
然后,它输出main.obj
并 main.exe
归档。但是当我尝试运行时,它在我认为我应该将应用程序编译成程序之前和之前main.exe
崩溃了。请问有人可以给点建议吗?begin computing dist
end computing dist.
x64
main.cpp
如下: