我在Windows 7-64计算机上使用Visual Studio 2013,但仍然出现以下错误.我在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild下的reg键设置完全相同,我的同事可以编译解决方案.我们使用相同的VS2013.
我的日志显示"C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5)",但不是V120,这很奇怪.有谁知道为什么?
感谢任何线索和帮助,被困了几天.
1> ------ Build build:Project:MyProject01,Configuration:Debug Win32 ------
2> ------ Build started:Project:MyProject02,Configuration:Debug Win32 ------
1> C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5):错误MSB8020:v120的构建工具(Platform Toolset ='v120 ')无法找到.要使用v120构建工具进行构建,请单击"项目"菜单或右键单击解决方案,然后选择"更新VC++项目...".使用v120构建工具安装v120进行构建.
2> C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5):错误MSB8020:v120的构建工具(Platform Toolset ='v120 ')无法找到.要使用v120构建工具进行构建,请单击"项目"菜单或右键单击解决方案,然后选择"更新VC++项目...".使用v120构建工具安装v120进行构建.
3> ------ Build build:Project:MyProject03,Configuration:Debug Win32 ------
3> C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft. Cpp.Platform.targets(44,5):错误MSB8020:找不到v120(Platform Toolset ='v120')的构建工具.要使用v120构建工具进行构建,请单击"项目"菜单或右键单击解决方案,然后选择"更新VC++项目...".使用v120构建工具安装v120进行构建.
4> ------ Build build:Project:MyProject04,Configuration:Debug Win32 ------
4> C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft. Cpp.Platform.targets(44,5):错误MSB8020:找不到v120(Platform Toolset ='v120')的构建工具.要使用v120构建工具进行构建,请单击"项目"菜单或右键单击解决方案,然后选择"更新VC++项目...".使用v120构建工具安装v120进行构建.
5> ------ Build build:项目:MyProject05,配置:调试x86 ------
5> CSC:错误CS0006:元数据文件'D:_Vault\Workspaces\MyProject05_Parser\Debug\MyProject05Parser.dll'可能找不到 …
我正试图通过Google Test框架+ Visual Studio 2013进行我的第一次单元测试.但是我遇到了以下错误并且无法理解原因.
1> ------ Build build:Project:FirstGoogleTest,Configuration:Debug Win32 ------
2> ------ Build build:Project:googleTest,Configuration:Debug Win32 ------
1> MyMultiplier.cpp
2> gtest_main.cc
1> main.cpp
1>生成代码...
2> gtest-all.cc
1> FirstGoogleTest.vcxproj - > D:_Vault\Workspaces\UnitTestLearning\FirstGoogleTest\Debug\FirstGoogleTest. exe
2>生成代码...
2> googleTest.vcxproj - > D:_Vault\Workspaces\UnitTestLearning\FirstGoogleTest\Debug\googleTest.lib
3> ------ Build build:Project:MyMultiplier_UnitLevelTest,Configuration:Debug Win32 - -----
3> MyMultiplier_UnitLevelTest.cpp
3> MyMultiplier_UnitLevelTest.obj:错误LNK2019:未解析的外部符号"public:unsigned int __thiscall
MyMultiplier :: multiply(unsigned int,unsigned int)"(?multiply @ MyMultiplier @@ QAEIII @ Z )在函数"private:virtual void __thiscall MyMultiplier_multiplyNormalSmallValues_Test :: TestBody(void)"中引用(?TestBody @MyMultiplier_multiplyNormalSmallValues_Test @@ EAEXXZ)
3> D:_Vault\Wo rkspaces\UnitTestLearning\FirstGoogleTest\Debug\MyMultiplier_UnitLevelTest.exe:致命错误LNK1120:1未解析的外部因素
==========构建:2成功,1失败,0最新,0跳过==== ======
解决方案结构如下:https:
//www.dropbox.com/s/0cu8eqr7pz3ajaz/Untitled.png …
我是批量新手.我的目的是编写一个读取文件中每一行的批处理,并依赖于读取的行执行一些不同的任务.这是一些样本
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%a in (test.txt) do (
echo %%a
*if %%a contains abc do (other tasks)*
)
Run Code Online (Sandbox Code Playgroud)
另外,我可以批量检测"换行符"吗?如果test.txt看起来像:
123
345
abckdla
abd
abd
abc
test
Run Code Online (Sandbox Code Playgroud)
当for循环在test.txt的row4和row8时,我可以打印"这是一个新行吗?"
非常感谢你的时间.
我很困惑为什么静态unordered_map被清除如果我通过引用得到它但不是如果我通过指针得到它...(你可以在这里执行代码:http://cpp.sh/4ondg)
是因为当引用超出范围时,它的析构函数会被调用吗?如果是这样,那么第二个获取功能会得到什么?
class MyTestClass {
public:
static std::unordered_map<int, int>& getMap() {
static std::unordered_map<int, int> map;
return map;
}
static std::unordered_map<int, int>* getMapByPointer() {
static std::unordered_map<int, int> map;
return ↦
}
};
int main()
{
// By reference
{
auto theMap = MyTestClass::getMap();
std::cout << theMap.size() << std::endl;
theMap[5] = 3;
std::cout << theMap.size() << std::endl;
}
{
auto theMap = MyTestClass::getMap();
std::cout << theMap.size() << std::endl;
theMap[6] = 4;
std::cout << theMap.size() << std::endl;
}
// …Run Code Online (Sandbox Code Playgroud)