问题标签 [msvc12]
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++ - 使用英特尔酷睿 i7 的 AVX 上的非法指令
我有一个由 MSVC 12 编译的 Windows x64 C++ 程序,没有 AVX 支持(编译选项中没有 /arch:AVX)。
我收到了一位客户在 Win7 上使用 Core i7 4700MQ 的崩溃报告。异常代码为 c000001d(非法指令),异常偏移量指向 sin() 函数内的“vmovd r9,xmm0”指令。我已经与该用户尝试了两种不同的构建,并且在这两种情况下它都指向相同的指令。
看起来 msvc 库版本的 sin() 内在函数具有特殊的 AVX 代码路径,即使在没有 AVX 支持的情况下编译也是如此。这段代码在没有 AVX 的旧 i3 处理器上运行良好。
那么在这个特定的 i7 上,什么会导致这个异常呢?对于具有广泛 CPU 的许多客户来说,相同的代码运行没有任何问题。
也许可以在操作系统设置/BIOS 中以某种方式禁用 AVX 并且 sin() 代码无法检查这一点?或者也许有一些操作系统更新增加了 AVX 支持,没有它,任何 AVX 代码都会触发 c000001d?
c++ - VS2013 LNK1104 要求不同版本的外部库(增强)
我有 4 个项目的 VS2013 解决方案。我的启动项目(A)依赖于其他 3 个项目(B、C 和 D)。所有 3 个项目都可以完美编译,没有链接错误。
我的启动项目要求libboost_filesystem-vc120-mt-gd-1_55.lib
但在查看所有项目的项目属性时,没有 lib 依赖项,甚至在源文件中也没有#pragma comment(lib)
. 此外,唯一使用的项目boost/filesystem.hpp
是 B,它编译时没有错误。
请注意,我拥有所有 boost 库,C:\Program Files (x86)\Boost\lib32-msvc-12.0
并且我使用的是 boost 1.56。
我的问题是:
- 当 B 是唯一使用 boost 文件系统的项目时,为什么 A 要求使用 boost 库?
- 当我有 boost 1.56 时,为什么 A 要求 boost 1.55 库?
- 如果 B 是唯一使用的项目
boost::filesystem
并且可以完美编译,为什么会出现此链接器错误? - 为什么该依赖项在项目属性或源代码中没有显式的 lib 依赖项?
我还查看了文件系统包含下的所有头文件,但没有看到#pragma comment(lib)
c++ - 使用 QT 库时未找到 MSVCP120d.dll 错误
嘿伙计们,我正在尝试将 QT 用于我的项目,并且我下载了 QT 的 5.2.1 msvc2012_64 版本。
但是,我在尝试运行 exe 文件时收到 MSVCP120d.dll 错误。我知道这是由于项目中有 Visual Studio 2013 库引起的。该问题确实是由使用 5.2.1 版本的 QT 引起的,因为禁用 QT 似乎可以解决该问题。
c++ - Google 协议缓冲区错误
所以我在 Visual Studio 2012 中打开了 protobuf.sln 文件并点击了 Build Solution(它处于发布模式)。我得到的错误是:
在来自谷歌协议缓冲区的说明中它说:
为避免 MSVC 调试和发布运行时库之间的冲突,在编译应用程序的调试版本时,您可能需要链接到 libprotobuf.lib 的调试版本。同样,发布版本应该链接到发布库。
这是造成问题的原因吗?如果是这样,我如何链接到 libprotobuf.lib 的调试版本?
谢谢!
更新 这是我现在的输出。有错误。还是有这个问题!
python - C++ 类不被 Python 3 识别为通过 Boost.Python 嵌入的模块
以下来自 Boost.Python v1.56 的示例展示了如何将 Python 3.4.2 解释器嵌入到您自己的应用程序中。不幸的是,该示例在我在 Windows 8.1 下使用 MSVC2013 的配置中无法开箱即用。而且我还没有找到 1 个关于嵌入的完整示例,至少没有一个小于 10 岁左右。
我在运行它时收到以下错误:ImportError: 'embedded_hello' is not a built-in module
代码在这里: http: //pastebin.com/shTtdxT8
任何提示我可以做些什么来让它运行?通常如何在 Python 中公开一个 c++ 类,反之亦然?
c++ - 未解析的外部符号 __mm256_setr_epi64x
我已经用 g++ 编写和调试了一些 AVX 代码,现在我正试图让它与 MSVC 一起工作,但我一直在
错误 LNK2019:未解析的外部符号 __mm256_setr_epi64x 在函数“private: union __m256i __thiscall avx_matrix::avx_bit_mask(unsigned int)const”(?avx_bit_mask@avx_matrix@@ABE?AT__m256i@@I@Z)
引用的代码是
- 我启用
/arch:AVX
了,但它没有任何区别。 - 我的机器绝对支持 AVX——它与我用于原始 Linux 项目的机器相同。
- 此外, http: //msdn.microsoft.com/en-us/library/hh977022.aspx列出
_mm256_setr_epi64x
了可用的内在函数。
任何帮助将非常感激。
c - 从已设置为已定义()结果的宏中期望得到什么值?
在下面非常简单的 C 程序中,预期的编译器错误是什么?gcc 给了我 1 而 MSVC 2013 给了我 2。
我的问题希望同样简单:
- C 规范对defined() 的值有何规定?我似乎找不到任何关于将其值设置为另一个宏的内容。
- 实际代码不是我可以控制的,并且到处都在使用“#if bar”。更改#define 以使#if 栏在MSVC 中按“预期”工作的最简单方法是什么?我唯一能想到的就是扩展它:
.
c++ - 尽管禁用了优化 (/Od),但“函数没有地址”
在 MSVC 2012 中进行调试期间,我试图从 Watch 窗口调用一些函数,以便将数据转储到文件中。但是,我不断收到此错误:
该类Matrix
位于我自己的外部库中。快速检查表明,外部库中的所有方法都没有地址,并且所有从 Watch 调用它们的尝试都会返回此错误,但在头文件中定义的方法除外。主项目中的方法都有地址,不管它们是在哪里定义的。
当然,整个解决方案都禁用了优化。符号正常加载。我如何解决它?
visual-c++ - Microsoft Visual C++ 的 Makefile
我对 MSVC 的 makefile 几乎没有任何疑问。我想创建将在 Visual C++ 编译器上编译我的项目的 makefile。我在名为“nmake”的网络上发现了一件事,据说它是 MSVC 的 makefile(如果我错了,请纠正我)。
所以,我用nmake介绍了自己,并用它成功编译了一个源文件。但问题是,我需要使用 Visual Studio 的命令提示符运行这个 nmake 文件。我还没有找到在普通命令提示符下使用该文件的方法。真的有可能吗?
假设,我没有安装视觉工作室。我只有可视化 C++ 编译器。那么我将如何使用 nmake 编译我的项目呢?
另一个问题,如果我只安装了可视化 C++ 编译器(如旧编译器,例如 microsoft visual C++ 2005),那么可以确定我会在此获得 nmake 命令吗?
提前致谢。
c++ - Windows 上的 C++ 命令行参数问题
我在用 C++ 解析 Windows 上的命令行参数时遇到问题。我试过用这个
还有这个
变量argc
和argv
似乎以某种方式未初始化。这就是启动程序返回给我的内容:
(以下崩溃)
/SUBSYSTEM:CONSOLE
我使用链接器选项使用 MSVC12 编译它。这个问题的原因可能是什么?