我已经设置了buildbot来编译带有/ analyze标志的Qt/C++应用程序.
然而,分析也在深入探讨我不关心的qt标题:
c:\qt\qt-everywhere-opensource-src-4.8.1\src\corelib\tools\qvector.h(547) : warning C6011: Dereferencing NULL pointer 'x.p': Lines: 474, 475, 476, 477, 478, 480, 491, 493, 497, 498, 499, 500, 503, 504, 518, 519, 520, 521, 522, 525, 545, 547
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法来排除这些文件?
(请注意我没有使用IDE,我正在寻找命令行,切换或代码更改)
特别针对2010年,特别是针对C++ ......缺少Vs Professional/Premium(烦人的标准版现在名为Professional)?
visual-studio-express visual-studio visual-c++-2010 visual-c++-2010-express
我怎样才能做到这一点 ?我可以在VS2010 IDE中工作,但是可以使用VS C++ 6.0编译器进行编译吗?我可以在VS2010 IDE中工作并使用VS2008编译器进行编译吗?
visual-studio-2010 visual-c++ visual-studio-6 visual-c++-2010
今天我启动了Visual Studio 2010(Visual C++)并开始研究一个项目.该解决方案包含两个项目.一个是我正在编写的静态库,另一个是包含库的单元测试的测试应用程序.
没有改变昨天的任何内容,可执行文件不再链接:
LINK : fatal error LNK1104: cannot open file 'mylib.lib'
Run Code Online (Sandbox Code Playgroud)
静态库编译和链接很好.我没有在一周左右更改项目设置,昨天连接得很好.
如果我进入可执行项目的设置并为其添加库目录$(SolutionDir)\debug,我会收到以下链接错误:
LINK : fatal error LNK1104: cannot open file 'kernel32.lib'
Run Code Online (Sandbox Code Playgroud)
我不确定问题是什么.我试过清理,重建,甚至重新启动我的机器.谷歌发现了古代Visual C++版本中的一些错误(但我使用的是2010),以及该程序已经运行的可能性.但是,它没有运行,重新启动确认了这一点.
什么会导致链接器找不到核心库,如kernel32.lib,或者就此而言,我的解决方案的输出目录?
这是一个老式的C++,一个跨平台的库,而不是微软增加的托管内容.
我遇到了一个非常奇怪的症状.谁能告诉我根本原因是什么?
我的VC++编译器版本是最新的:"Microsoft Visual C++ 2010:01019-532-2002102-70860"
重现步骤:
\ bug\main.cpp(54893757):致命错误C1001:编译器中发生内部错误.(编译器文件'msc1.cpp',第1420行)
若要解决此问题,请尝试简化或更改上面列出的位置附近的程序.请在Visual C++帮助菜单上选择技术支持命令,或打开技术支持帮助文件以获取更多信息.
注入文本中发生此错误:
d:\ bug\main.cpp(63):参见使用[T = int]编译的函数模板实例化'XDummy Test(T)'的引用
建立失败.
以下是main.cpp的源代码:
#include <vector>
template<class It_>
struct trait_dummy
{
static const int value = std::tr1::is_convertible<typename iterator_traits<It_>::iterator_category, int>::value;
};
template<class It_>
class X
{
public:
template<class T_>
X(T_& rColl)
{}
};
template<class T_>
X<typename T_::iterator> f(T_ rColl, std::false_type)
{
return X<typename T_::iterator>(rColl);
}
template<class T_>
auto f(T_& rColl) -> decltype(f(rColl, std::false_type()))
{
return f(rColl, std::false_type());
}
template<class It_>
X<It_> f(It_ …Run Code Online (Sandbox Code Playgroud) c++ compiler-construction crash compiler-errors visual-c++-2010
我是一个不得不在MFC应用上做一些工作的.NET人.该应用程序是VS2008 MFC可执行文件,我已转换为VS2010.原始开发人员通过在应用程序命令行中指定具有键值对的.txt文件的名称来进行本地化.安装的可执行文件快捷方式指定了一个不同的.txt文件,具体取决于安装该应用程序的国家/地区.如果您直接运行.exe,这当然不起作用.对我来说,这似乎是一种奇怪的方式.
我想用MFC方式做这个,但我很难在Google上找到明确的答案.我的理解是.rc文件中的字符串表应该用于本地化?这是目前MFC的最佳实践吗?
关于字符串表,我已经读过,实践是为不同的语言创建多个字符串表.MFC应用程序如何选择使用哪种语言?它是基于机器当前语言设置还是我可以控制它(可能是我们希望语言由我们也在构建的Wix .msi安装程序指定)?
我还读到在MFC应用程序中嵌入所有资源已经失宠了,现在你应该编译单独的资源.dll?这是真的生病调查如何做到这一点......
最后,我是否必须做一些特殊的事情来让MFC支持Unicode或默认是MFC Unicode?
谢谢
我正在尝试安装适用于Windows 7和.NET Framework 4的Microsoft Windows SDK.它失败了,抱怨错误5100,如http://support.microsoft.com/kb/2717426所述, 该链接说要删除Microsoft Visual C++ 2010 x86 Redistributable和Microsoft Visual C++ 2010 x64可再发行.有一个大问题:这些都没有安装在我的盒子上.这是一个Win 7盒子.打开程序和功能,我显然有许多Microsoft Visual C++ 2008 Redistributable实例,但没有一个以"Microsoft Visual C++ 2010 ..."开头的安装项目.
但是,如果我点击"查看已安装的更新",我会清楚地看到未安装的2010可再发行组件之上的几个更新:
Microsoft Visual C++ 2010 x64可再发行(3)
Microsoft Visual C++ 2010 x86可再发行(3)
这些项目没有"卸载"功能.所以我显然在未安装的东西上有修补程序.我下载了Visual Studio 2010 C++ redist并尝试运行它以查看是否允许我卸载它,但是不行,我只是失败了:
A newer version of Microsoft Visual C++ 2010 …Run Code Online (Sandbox Code Playgroud) I have a problem regarding 'static const' member initialization. In a templated class I define a const member and initialize it outside the class.
When I include the .h file where this class is implemented in multiple .cpp files, I get an LNK2005 error (I'm using VS2010) that says the constant is already defined.
// List.hpp
template <class T>
class List {
static const double TRIM_THRESHOLD;
};
template <class T>
const double List<T>::TRIM_THRESHOLD = 0.8;
Run Code Online (Sandbox Code Playgroud)
我尝试将成员初始化放在.cpp文件中,但后来我得到一个链接器错误,说根本没有定义常量.如果列表没有模板化,我将初始化放在.cpp文件中,一切都很好.
这种情况有什么解决方案吗?我已经在文件周围有#ifdef/define子句,这绝对不是解决方案.
我正在使用Visual C++ 2010.它是否支持C++ 11线程库,这样我可以在这个问题中编译代码?
如果没有,我可以使用哪个库来支持这个?
对于大学的一个班级,教授为我们提供了一些我们要修改的骨架代码.当我尝试在Visual C++ 2010 Express(x86)中编译代码时,收到以下错误:
C:\Users\[username]\AppData\Local\Temp\.NETFramework,Version=v4.0.AssemblyAttributes.cpp : fatal error C1083: Cannot open compiler generated file: 'Release\.NETFramework,Version=v4.0.AssemblyAttributes.obj': Permission denied
Run Code Online (Sandbox Code Playgroud)
我登录的帐户具有相关文件的完全读写修改权限,我使用的是Windows 7(x64).为了使问题更加混乱,项目在调试模式下编译,但在发布模式下编译,教授指示我们使用它.
预先感谢您的任何帮助.
visual-c++-2010 ×10
c++ ×5
visual-c++ ×3
c++11 ×1
const ×1
crash ×1
localization ×1
mfc ×1
qt ×1
static ×1
string-table ×1
winapi ×1