草庐IT

MsVS-NuGet

全部标签

c++ - 与使用声明在 GCC 中编译但在 MSVS 中编译的范围相同的类声明

根据c++标准,下列程序是否良构?namespaceX{classA;}namespaceY{usingX::A;classA{};}intmain(){}我用不同的编译器得到不同的结果:gcc编译它没有错误。visualc++给出错误C2888:“X::A”:无法在namespace“Y”中定义符号我没有发现我的程序违反了c++标准中的任何规则。如果程序是良构的,为什么visualstudio会报错?如果程序不是良构的,它违反了c++标准中的什么规则,为什么gcc不报错?我并不是要编译我的程序。我只是想看看它是否符合c++标准,以及为什么我测试的两个编译器的行为不同。

c# - 安装 NuGet 包 Xamarin 时出现问题

我正在使用Xamarin中的Azure移动服务制作一个安卓项目。我想安装最新版本的Azure移动服务NuGet包。但是我收到一条错误消息:-NuGet.NuGetVersionNotSatisfiedException:The'Microsoft.Bcl1.1.9'packagerequiresNuGetclientversion'2.8.1'orabove,butthecurrentNuGetversionis'2.7.2.0'.我刚开始使用Xamarin。我该如何解决这个问题? 最佳答案 如果您使用的是VisualStudio,

c# - NuGet 包导致 visual studio 2015 和 Xamarin 出现问题

我正尝试与另一个使用源代码控制的friend使用Xamarin和VisualStudio2015创建一个Android应用程序。一切都很顺利,直到我的friend添加了一个项目并且他使用了NuGet包。在我激活获取最新版本并尝试构建解决方案后,我收到了错误消息:SeverityCodeDescriptionProjectFileLineErrorThisprojectreferencesNuGetpackage(s)thataremissingonthiscomputer.UseNuGetPackageRestoretodownloadthem.Formoreinformation,s

c++ - C->C++ 在未给出类型的情况下,在#define 中自动将 void 指针转换为 C++ 中的类型指针(C 风格)[MSVS]

您好!我使用了下面的C宏,但是在C++中它不能自动将void*转换为type*。#defineMALLOC_SAFE(var,size){\var=malloc(size);\if(!var)gotoerror;\}我知道,我可以做这样的事情:#defineMALLOC_SAFE_CPP(var,type,size){\var=(type)malloc(size);\if(!var)gotoerror;\}但我不想重写大部分代码,其中使用了MALLOC_SAFE。有没有办法在不给宏类型的情况下做到这一点?也许一些MSVC2005#pragma/__declspec/other?p.s.

c++ - 了解 MSVS C++ 编译器优化

我不明白这段代码中发生了什么。C代码是:#includeintmain(){constintmul=100;intx;printf_s("Inputanumber\r\n");scanf_s("%i",&x);printf_s("%i/%i=%i\r\n",x,mul,x/mul);return0;}我预计生成的程序集将是一些简单的移位和加/减操作,但有一些神奇的常量,如51EB851Fh、乘法等。这里发生了什么?;int__cdeclmain()_mainprocnearx=dwordptr-8var_4=dwordptr-4pushebpmovebp,espsubesp,8move

c++ - MSVS 2010 和 C++ 标准的构建问题

我正在尝试使用msvs2010构建在以下git中找到的项目:https://github.com/Joonhwan/exprtk问题是当我注释掉exprtk.hpp文件中的第48行“#defineexprtk_lean_and_mean”时,出现以下编译器错误:Error1errorC1128:numberofsectionsexceededobjectfileformatlimit:compilewith/bigobj谷歌搜索错误,似乎表明已编译的翻译单元已编译到大于任意限制的内容,并且将“bigobj”添加到命令行应该可以解决问题(确实如此)。使用gcc(4.3)编译代码,可以正常

c# - 依赖于 Visual C++ 2013 运行时的 NuGet 包

我已经从.NET4.0DLL创建了一个NuGet包,其中包含混合(托管和native)代码。native代码打包在.NET4.0DLL中,但依赖于VisualC++2013Redistributable我正在尝试集思广益,用NuGet包打包redist和/或警告用户他们需要它,但我一无所获。有人有什么想法吗? 最佳答案 实际上我自己解决了这个问题。虽然我找不到将VCpp运行时作为NuGet包的依赖项包含在内的解决方案,但我确实找到了一个警告用户需要VisualC++2013运行时的解决方案。我在启动需要VC++运行时的组件/库时静态

c++ - 由 nuget 提供支持的 vc++ vs2013 代码无法构建

我对VC++和Boost很陌生。我的问题是我想在我的VC++VisualStudio2013项目中使用Boost1.56.0(所以我使用vc120)。我已经通过NuGet(https://www.nuget.org/packages/boost/)安装了Boost。一切似乎都很好,但是当我尝试构建我的项目时,它说:FatalerrorLNK1104:Cannotopenfile"libboost_thread-vc120-mt-gd-1_56.lib".您知道问题到底出在哪里吗?我该如何解决?我认为使用NuGet安装包将完成全部工作,让事情自行运行。我知道链接器找不到lib文件(实际上

c++ - 为什么在使用其他库时会出现 LNK4098 冲突 - 尝试在 MSVS2010 Express 中编译 C++ 时?

我的程序无法在/MT(多线程)模式下成功编译。它在/MD(多线程DLL)中编译。我希望能够在我将与安装程序一起分发的应用程序中同时使用libcurl和boost。编译于:MSVS2010这是复制我的问题的代码:#include"stdafx.h"#include"boost/regex.hpp"#include"curl/curl.h"int_tmain(intargc,_TCHAR*argv[]){CURL*curl;curl=curl_easy_init();return0;}这是我在/MD模式下收到的警告:LINK:warningLNK4098:defaultlib'MSVCRT

c# - 运行时 ServiceStack Redis NuGet 依赖版本错误

使用NuGet运行包更新后,我无法再运行我的应用程序。它构建得很好,但运行时我收到:无法加载文件或程序集“ServiceStack.Interfaces,Version=4.0.2.0,Culture=neutral,PublicKeyToken=e06fbc6124f57c43”或其依赖项之一。该系统找不到指定的文件。这似乎是版本号不正确造成的,但我找不到修复它的方法,因为该版本号没有出现在任何用户可编辑的文件中。事实上,我的.csproj正在寻找Version=4.0.0.0。更改此项没有任何用处。我第一次安装ServiceStack.Redis时,我必须手动修复我的.csproj