问题标签 [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.

0 投票
1 回答
351 浏览

c++ - 如何使用与 MSVS 中相同的设置从 cmd 运行 cl.exe?

我在 MSVS 2010 Express 中有一个 c++ 项目。我一直计划编写几个单元测试来验证这个项目。现在他们遵循以下路线:

我在我的项目之外创建这些源文件,因为我希望能够将它们中的每一个作为单独的可执行文件运行,但是我无法让 Microsoft 链接器链接它们。

到目前为止,这是我的问题(CMD 输出):

我从来没有真正使用过微软的产品,我熟悉使用 GNU 工具 GCC 和 make 但我必须使用微软的工具,我不知道它们是如何工作的。

也许我打算以愚蠢的方式构建这些测试,但这是我现在能想到的最好的方式。

这就是我想要做的:

  1. 将我项目中的源文件编译成目标文件
  2. 将我的测试文件编译成目标文件
  3. 将测试对象文件与适当的项目对象文件链接以生成测试可执行文件

我该怎么做呢?(我猜我需要设置一些设置以使所有内容兼容,但我不知道它们是什么或如何设置它们)

额外:我知道它提到了调试级别,但我愿意打赌会有其他不兼容的设置。有没有办法找出程序中的设置,以便在运行时将它们传递给 cl.exe?

编辑:当我说命令提示符时,我的意思是 Visual Studio 附带的所有环境变量设置。

0 投票
2 回答
8781 浏览

c++ - 如何使用 cl.exe 链接静态库?(指定 RuntimeLibrary)

结果是:

如何指定 RuntimeLibrary?

0 投票
1 回答
96 浏览

c - GCC 相对搜索目录

我尝试使用 MinGW GCC 而不是 MSVC 编译器。我有一个关于 GCC 搜索目录的问题。我将用一个简单的例子来描述我的问题。

我有一些文件:C:\Project\Module1\Module1.c其中包含:

,在哪里Module2.hC:\Project\Module2\Module2.h

要编译Module1.c,我使用:

gcc -I..\Module2\ C:\Project\Module1\Module1.c

但它给出了一个错误:Module2.h no such file or directory. 我也尝试使用:

在它之前,但我得到了同样的错误。

0 投票
2 回答
421 浏览

visual-studio-2012 - nlopt 无法使用 MSVC 2012 编译 cobyla.c

当我尝试使用网站提供的 Windows cmake 文件使用 Visual Studio Express 2013编译nlopt时,子目录中的配置 via工作正常,但编译 via失败并显示以下错误消息:cmake -DCMAKE_BUILD_TYPE=Release -DNLOPT_BUILD_SHARED=On -G"NMake Makefiles" ..buildnmake

0 投票
1 回答
121 浏览

ios - Renaming App Failed after following Technical Q&A QA1625

After changing my app's name per Technical Q&A QA1625, I get this error message:

clang: error: linker command failed with exit code 1 (use -v to see invocation)

ld: file not found: /Users/.../Xcode/DerivedData/.../Build/Products/Debug-iphonesimulator/oldName.app/oldName

This directory has the correct names, i.e. newName.app/newName... Why is Xcode looking for oldName? I'm extremely reluctant to hack this by renaming these files manually. I have looked through the other StackOverflow questions and nothing there seems to work.

How can I fix this?

Thanks

0 投票
0 回答
117 浏览

64-bit - 尝试使用“x86_amd64\cl.exe”编译代码以生成 64 位应用程序的错误消息

我尝试使用“C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\x86_amd64\cl.exe”编译一小段代码以生成 64 位应用程序时收到此错误消息

“应用程序或 DLL c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\amd64\mspdb80.dll 不是有效的 Windows 映像。请检查此安装盘”

0 投票
1 回答
2410 浏览

c++ - A multithreading app compiled with MSVC fails at runtime

I've implemented a class that cyclically runs a supplied function.

And here'a s simple program to see if it works:

When I build the app with g++, the program builds and runs without any problems. However, when I use the Microsoft's compiler (v18) the program compiles as well, but it fails at runtime.

When I use the release configuration I get the following exception from one of the threads:

Unhandled exception at 0x000007F8D8E14A30 (msvcr120.dll) in Program.exe: Fatal program exit requested.

When I use the debug configuration, a Microsoft Visual C++ Runtime Library error pops up every second:

Debug Error!

Program: ...\path\Program.exe

R6010 - abort() has been called

In both configurations:

  • The exception is thrown/the errors start popping up in the second iteration of the timer's loop.

  • The program does not enter the Tick function even once, even though thread(handler) gets invoked.

  • Although the stack traces at the moment of error differ in those two configurations, neither of them contains anything from my code. Both start with ntdll.dll!UserThreadStart(); the debug one ends with msvcr123d.dll!_NMSG_WRITE() and the release one ends with msvcr120.dll!abort().

Why do the problems appear and why only when the app is compiled with MSVC? Is it some kind of MSVC's bug? Or maybe should I change something in the compiler's configuration?

0 投票
2 回答
2981 浏览

c - 使用 CL 编译多个文件

这个 GNU makefile 如何查找 windows(我必须使用 nmake 和 CL):

我能想到的就是:

请注意,我的作业是实现一个哈希集,我已经完成了,这只是现在困扰我的 makefile。我不断收到每个文件的错误:文件意外结束

0 投票
0 回答
240 浏览

c - _tcslen 成为对 _mbslen 的调用,即使未定义 _UNICODE 和 _MBCS

第一次在这里的用户。

我试图更好地理解 Unicode、utf-8 等。目前我正在从 Windows 命令提示符处执行此操作。

可以发布在 Visual Studio 中看到的反汇编转储吗?

文档声明 _mbslen 仅在定义 _MBCS 时使用时,我无法弄清楚为什么_tcslen(streng)编译成调用。_mbslen

我编译cl -Zi main.c时,devenv main.exe我可以确认_UNICODE 和_MBCS 都不是用该行定义的UINT cs = UC | UM;(cs 是0xa)。

如果我删除定义 UNICODE 的第一行并将命令提示符中的代码页设置为 65001,则一切正常,因为我使用 utf-8 保存源文件。如果我wcslen(streng)在字符串中保留 UNICODE 定义但硬编码和代码点,它也可以工作。这让我相信,即使 _tcslen 变成 wcslen 它也不会起作用,除非我将 Unicode 代码点硬编码到字符串中。但这不是重点。我想知道为什么编译器选择调用_mbslen而不是wcslen。

0 投票
1 回答
1832 浏览

c - 在 cl 编译器中编译 C99

我正在使用 microsoft cl 编译器(Visual Studio 2013 附带的那个),我正在寻找一个在编译时使用的命令来告诉编译器支持 C99 .. 谁能帮我做到这一点?