小编val*_*ano的帖子

有没有办法在使用msvc时获得有关错误上下文的更好信息?(例如:C2248)

我想知道是否有办法在msvc(2005)中获得有关错误位置的更好信息?

例如,当我从类中继承boost :: noncopyable时,我得到一个C2248错误,例如:

错误C2248:'boost :: noncopyable _ :: noncopyable :: noncopyable':无法访问类'boost :: noncopyable _ :: noncopyable'中声明的私有成员.此诊断发生在编译器生成的函数'MyClass :: MyClass(const MyClass&)'中

但它没有告诉我复制构造函数的确切位置.这有点烦人.我真的不确定,但我想我记得看到某个设置我可以指定输出级别或其他东西,但我搜索并发现什么,所以我的问题是:有没有办法在msvc中变得更好(更丰满?)错误消息?

编辑:好吧,因为stackoverflow只是告诉我,我应该接受一个答案,我想知道是否有人可以告诉msvc 2008/2010是否给这个错误更好的诊断?有人还提到GCC应该这样做,有人能证实这一点吗?那么其他编译器呢(Intel?,Comeau?)

谢谢

c++ compiler-errors visual-c++

8
推荐指数
1
解决办法
1570
查看次数

如何将Win8.1中的操作系统版本作为GetVersion/GetVersionEx弃用?

我有一些场景,我想特别了解操作系统主要/次要版本和内部版本号等.

从Windows 8.1开始GetVersion,GetVersionEx已被弃用,说明:

[ Windows 8.1之后的版本中可能会更改或无法使用GetVersion/GetVersionEx.相反,使用版本助手功能]

没有版本帮助程序API可以帮助我获取操作系统版本号,而是帮助我验证或了解我的版本是否与上述版本相同或更高.可以做些什么?

windows winapi minimumosversion visual-studio-2013 windows-8.1

8
推荐指数
2
解决办法
1万
查看次数

OpenCV for Python 3.5.1

我已经搜索了很多关于这个,我自己尝试了一些这些方法,但我无法使用OpenCV.So你们有人可以帮我安装OpenCV for python 3.5.1吗?

我在Windows中使用anaconda和Pycharm

或者这是不可能的,我必须使用python 2.7?

提前致谢

python opencv python-3.x

8
推荐指数
3
解决办法
5万
查看次数

Windows是否有预建的clang库?

我正在Linux上使用clang库开发工具,我想将此工具移植到Windows。

在Linux上,我可以使用LLVM存储库中的Clang来安装Clang apt-get clang-6.0-dev,只需将其工具与链接即可-lclang。我不需要自己编译LLVM和Clang。

有没有办法在Windows上做类似的事情,还是我需要自己编译Clang库?

我能找到的所有与Clang相关的文章都是关于将clang用作工具而非库的。

我已经从LLVM网站安装了Clang和LLVM的预构建可执行文件,这些文件与mingw结合使用时效果很好。但是,Windows的下载文件似乎没有将Clang库作为单独的文件(DLL)包含在内,并且链接-lclang导致链接器错误。

如果没有用于Windows的预构建库,最好的处理方式是什么,最好是使用mingw而不是MSVC?

windows dll clang

8
推荐指数
2
解决办法
1827
查看次数

C++ LNK1120和LNK2019错误:"未解析的外部符号WinMain @ 16"

我正试图从Deitel的书中做另一个练习.该程序计算每月利息并打印每个储户的新余额.由于练习是与动态内存相关的章节的一部分,我使用的是"new"和"delete"运算符.出于某种原因,我得到了这两个错误:

LNK2019:函数___tmainCRTStartup中引用的未解析的外部符号WinMain @ 16

致命错误LNK1120:1个未解析的外部因素

这是类头文件.

//SavingsAccount.h
//Header file for class SavingsAccount

class SavingsAccount
{
public:
    static double annualInterestRate;

    SavingsAccount(double amount=0);//default constructor intialize  
                                        //to 0 if no argument

  double getBalance() const;//returns pointer to current balance
  double calculateMonthlyInterest();
  static void modifyInterestRate(double interestRate):

  ~SavingsAccount();//destructor

private:
    double *savingsBalance;
};
Run Code Online (Sandbox Code Playgroud)

具有成员函数定义的Cpp文件

//SavingsAccount class defintion
#include "SavingsAccount.h"

double SavingsAccount::annualInterestRate=0;//define and intialize static data
                                        //member at file scope


SavingsAccount::SavingsAccount(double amount)
:savingsBalance(new double(amount))//intialize savingsBalance to point to new object
{//empty body
}//end of constructor

double SavingsAccount::getBalance()const
{ …
Run Code Online (Sandbox Code Playgroud)

c++ linker-errors lnk2019 visual-c++

7
推荐指数
1
解决办法
5757
查看次数

没有CLR版本v4.被加载到目标进程中. - CLR Profiler错误

我正在尝试使用CLR Profiler来配置我的应用程序.我从http://www.microsoft.com/download/en/details.aspx?id=16273下载了最新版本的profiler .我试图通过附加它来分析应用程序.但总是我收到这样的消息.

在此输入图像描述

我尝试使用clrver命令来识别CLR版本,它返回v4.0.30319.我该如何解决这个错误?

.net-4.0 clrprofiler

7
推荐指数
1
解决办法
1637
查看次数

如何指定与 CMAKE_CXX_CLANG_TIDY 变量一起使用的其他参数

我正在尝试使用 make use of clang-tidycmake 的集成,我想传递这个-check论点。我尝试-DCMAKE_CXX_CLANG_TIDY="/usr/local/opt/llvm38/bin/clang-tidy-3.8;-checks=*"在调用 cmake 时添加,但我的 makefile 命令最终看起来像:

/usr/local/Cellar/cmake/3.6.2/bin/cmake -E __run_iwyu --tidy="/usr/local/opt/llvm38/bin/clang-tidy-3.8;-checks=*" --source=/Users/ellery/work/.....

换句话说,它似乎是 ; 分离的 args 没有被分开解析。我还尝试CXX_CLANG_TIDY使用相同的值直接在我的目标上设置目标属性,并且我得到了相同的行为。

有没有人clang-tidy通过 cmake成功调用了额外的参数?

cmake clang-static-analyzer clang-tidy

7
推荐指数
1
解决办法
4212
查看次数

警告:无法解析.gnu_debugdata部分; LZMA支持在编译时被禁用

当将核心转储文件加载到gdb中时,我收到以下警告,看起来加载某些符号也因此失败.

warning: Cannot parse .gnu_debugdata section; LZMA support was disabled at compile time
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

c++ gdb core gdbserver alpine-linux

7
推荐指数
1
解决办法
2125
查看次数

什么是正确的 LLVM 标头保护样式?

在 clang tidy 中,检查[llvm-header-guard]查找 LLVM 样式的头保护,但我找不到任何正确的 LLVM 头保护样式的示例,特别是给定名称的结构,编码标准页面没有提到任何东西。

c++ include-guards llvm llvm-clang clang-tidy

7
推荐指数
1
解决办法
6570
查看次数

即使类已卸载,也不会为通用类调用ICorProfilerCallback :: ClassUnloadStarted

我目前正在调试公司的CLR探查器(通过ASP.NET 4.7.3282.0,.NET Framework 4.7.2),并看到CLR卸载通用类但未调用ClassUnloadStarted回调的情况。

简而言之,我们的探查器根据ClassLoadStartedClassLoadFinishedClassUnloadStarted回调跟踪基于ClassID的加载。在某些时候,该类(及其相关模块)将被卸载,但相关类ID不会调用ClassUnloadStarted回调。因此,我们剩下一个停滞的ClassID,以为该类仍在加载。稍后,当我们尝试查询该ClassID时,CLR意外崩溃(因为它现在指向垃圾内存)。

我的问题,考虑以下详细情况:

  • 为什么不为我的(通用)类调用ClassUnloadStarted?
  • 这是CLR的预期的极端情况行为,还是CLR /分析API错误?

我找不到有关此行为的任何文档或理由,特别是ClassUnloadStarted没有被调用。我也没有在CoreCLR代码中找到任何提示。在此先感谢您的帮助!

详细方案:

这是所讨论的类(IComparable(T)带有T=ClassFromModuleFoo):

System/IComparable`1<ClassFromModuleFoo>
Run Code Online (Sandbox Code Playgroud)

当应用程序运行时,在卸载了某些模块后,问题就会显现出来。
这是确切的加载/卸载回调流程,基于添加的调试打印:

  1. System/IComparable'1(ClassFromModuleFoo)mscorlib 的类已加载。
  2. 之后,立即ClassFromModuleFoo将模块Foo 的class 加载到程序集#1中。
  3. Foo模块完成加载到部件1中。
  4. 然后,模块Foo再次装入另一个组件#2。
  5. IComparableClassFromModuleFoo再次加载,这一次是在组装#2。现在,每个类有两个实例:一个在装配#1中加载的Foo中,一个在装配#2中加载的Foo中。
  6. 模块Foo开始从部件#1卸载。
  7. ClassUnloadStartedClassFromModuleFoo在程序集1中需要回调。
  8. Foo模块完成了从组件#1卸载的工作。
  9. ClassUnloadStarted以后任何时候都不会调用System/IComparable'1(ClassFromModuleFoo)程序集1(即使已卸载其模块且其ClassID指向现在已损坏的内存)。

一些其他信息:

  • 该问题还会在最新的.NET Framework版本4.8 Preview中重现。
  • 我已通过添加COR_PRF_DISABLE_ALL_NGEN_IMAGES到事件探查器事件掩码来禁用本机映像,认为它可能会影响ClassLoad *回调,但并没有任何区别。我验证mscorlib.dll了确实在加载而不是其本机映像。

编辑:

多亏我非常聪明的同事,我才能够通过一个小示例项目来重现该问题,该项目通过加载和卸载AppDomains来模拟这种情况。在这里是:https :
//github.com/shaharv/dotnet/tree/master/testers/module-load-unload

崩溃发生在测试中的此类上,该类已被卸载,并且CLR没有针对该类调用卸载回调: …

.net generics clr profiling clr-profiling-api

7
推荐指数
1
解决办法
300
查看次数