我有一个vector的pair像这样的:
vector<pair<string,double>> revenue;
Run Code Online (Sandbox Code Playgroud)
我想在地图中添加一个字符串和一个double,如下所示:
revenue[i].first = "string";
revenue[i].second = map[i].second;
Run Code Online (Sandbox Code Playgroud)
但由于收入未初始化,因此出现了出界错误.所以我尝试使用vector::push_back这样的:
revenue.push_back("string",map[i].second);
Run Code Online (Sandbox Code Playgroud)
但那说不能采取两个论点.那么,如何可以添加到这个vector的pair?
我们最近将Windows软件包从RPM(cygwin)切换到了MSI(wix).拥有原生包装是一个非常受欢迎的变化,我们打算坚持下去.但是,MSI对它的功能感到过于复杂,似乎并没有提供一些基本的能力.但我可能错了.
有没有办法从命令行列出所有已安装的MSI?
正如大多数人可能注意到的那样,当卸载MSI软件包时,Windows将要求提供原始.msi文件.这是为什么?
我只能看到它的缺点:
有人可以对此有所了解吗?
要无人参与安装任何MSI包,只需使用以下命令:
msiexec /qn /i package.msi
Run Code Online (Sandbox Code Playgroud)
但是,这会触发异步安装:如果您碰巧链接2个依赖安装,则必须等待第一次安装才能完成.
有没有办法从命令行执行此操作?
我们目前正在使用单一命令行工具在Windows和Linux上构建我们的产品.
Si很好地工作,允许我们构建源代码和更好的依赖关系比我们以前的构建系统允许的.这为我们带来了很好的增量和并行构建功能.
为了简要描述构建过程,我们得到通常的:
.cpp -- cl.exe --> .obj and .pdb
multiple .obj and .pdb -- cl.exe --> single .dll .lib .pdb
multiple .obj and .pdb -- cl.exe --> single .exe .pdb
Run Code Online (Sandbox Code Playgroud)
msvc C/C++编译器可以充分支持它.
最近出现了构建一些静态库的需求.根据我们收集的内容,构建静态库的过程如下:
multiple .cpp -- cl.exe --> multiple .obj and a single .pdb
multiple .obj -- lib.exe --> a single .lib
Run Code Online (Sandbox Code Playgroud)
单个.pdb意味着cl.exe只应对所有.cpp源执行一次.这种单一执行意味着我们无法并行化此静态库的构建.这真的很不幸.
我们进一步调查并根据文档(和可用的命令行选项):
cl.exe 不知道如何构建静态库lib.exe 不知道如何构建.pdb文件有人知道合并多个PDB文件的方法吗?我们注定要为静态库建立慢速构建吗?像Incredibuild这样的工具如何解决这个问题?
这是这个问题的后续行动.
我正在使用这个稍微修改过的脚本来枚举所有已安装的MSI包:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & _
strComputer & _
"\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("SELECT * FROM Win32_Product")
If colSoftware.Count > 0 Then
For Each objSoftware in colSoftware
WScript.Echo objSoftware.Caption & vbtab & _
objSoftware.Version
Next
Else
WScript.Echo "Cannot retrieve software from this computer."
End If
Run Code Online (Sandbox Code Playgroud)
然而令人惊讶的是它的糟糕表现.在我的XP盒子上枚举34个已安装的MSI软件包需要3到5分钟!
相比之下,坐在旁边的Linux机箱需要花费7秒来计算1400+ RPM ... 叹息
这有什么线索吗?