Bin / MSBuild.exe和Bin / amd64 / MSBuild.exe之间的区别是什么

时间:2017-09-15 05:44:19

标签: msbuild visual-studio-2017

was looking for MSBuild.exe,我在两个略有不同的地方找到了它:

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
    // read the parameters
    // check input
    if( nrhs != 1 || !mxIsNumeric(prhs[0]) )
        mexErrMsgTxt("A unique scalar number with the expected size of the queue is necessary.\n");

    // retrieve the data
    int nelems = 100;
    retrieve_data( prhs[0], nelems );

    // instantiate the priority queue
    MaxHeap<double>* pq = new MaxHeap<double>(nelems);

    // convert the points to double
    plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL);
    double* pointer_to_tree = mxGetPr(plhs[0]);
    pointer_to_tree[0] = (long long) pq;
}

它们之间有什么区别,我应该使用哪种?

1 个答案:

答案 0 :(得分:2)

  

它们之间的区别是什么?

MSBuild.exe有两个版本,32位和64位。

在32位计算机上,MSBuild.exe存在于路径中:C:\Program Files\..\..\Bin\MSBuild.exe

在64位计算机上,有两个版本的MSBuild.exe工具。 32位工具位于:Bin\MSBuild.exe和64位工具下:Bin\amd64\MSBuild.exe

如果您想了解这两个版本之间的一些差异,可以参考博客:Building on Cross targeting scenarios and 64-bit MSBuild

  

我应该使用哪个?

要回答这个问题,您应该知道32位程序和64位程序之间的区别。您可以参考this document了解详细信息。

  
      
  1. 如果程序集配置为任何CPU,则它将在64位计算机上以x64运行,在32位计算机上以x86运行。

  2.   
  3. 如果程序集配置为x86,那么它将在64位计算机上运行为WOW64(即32位进程),在32位运行时运行为x86   机。

  4.   
  5. 如果程序集配置为x64,那么它将在64位计算机上以x64身份运行,并且无法在32位计算机上运行

  6.   

所以你应该使用Bin / MSBuild.exe ,它可以在64位机器上运行,在32位机器上运行x86。

此外,Visual Studio构建相当于运行32位MSBuild。