2016-06-07 289 views
0

我是Scilab/Xcos的新手,想要第一次安装它。我注意到我想尝试的一些Xcos块需要一个C编译器。Scilab with Visual Studio 2015

我已经安装了Visual Studio 2015 Professional,并且在Scilab中,如果我运行了findmsvccompiler,它将返回msvc100pro。如果我运行configure_msvc,则返回T(true?)。

但是,当我运行haveacompiler时,它返回F(false?)。

有什么办法可以在Scilab上使用VS2015的编译器吗?我知道supported compilers页面只列出了VS2013,但看起来这个页面在VS2015发布之前最后更新了。

有没有办法手动设置Scilab使用VC++ 2015编译器?或者我必须去安装MinGW编译器?

回答

1

我最近发现了一个for scicos 6.0.0和VC 2015 express的解决方法。该问题似乎是检测到一个错误的键(请参阅dlwIsVc14Express.sci)。 但创建这个关键是不够的。

我选择的方式是将这些行复制粘贴到scilab 6.0.0控制台中。 然后xcos汇编的样品工作对我来说很好。

// Scilab (http://www.scilab.org/) - This file is part of Scilab 
// Copyright (C) DIGITEO - 2010 - Allan CORNET 
// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS 
// 
// Copyright (C) 2012 - 2016 - Scilab Enterprises 
// 
// This file is hereby licensed under the terms of the GNU GPL v2.0, 
// pursuant to article 5.3.4 of the CeCILL v.2.1. 
// This file was originally licensed under the terms of the CeCILL v2.1, 
// and continues to be available under such terms. 
// For more information, see the COPYING file which you should have received 
// along with this program. 


// copy paste this modified function in scilab 6.0.0 console , then xcos compile 

//============================================================================= 
function bOK = dlwIsVc14Express() 
    bOK = %f; 
    try 
     if winqueryreg("key", "HKLM", "Software\Microsoft\DevDiv\vc\Servicing\14.0") <> [] then 
      bOK = %t; 
     end 
    catch 
    end 
endfunction 
//============================================================================= 

//============================================================================= 
// NDLA : I don't know the righ key to chose for dlwIsVc14Pro : change default function here 

/* 

function bOK = dlwIsVc14Pro() 
    bOK = %f; 
    try 
     if winqueryreg("HKLM", "Software\Microsoft\DevDiv\vs\Servicing\14.0\devenv", "install") == 1 & ... 
      dlwIsVc14Express() == %f then 
      bOK = %t; 
     end 
    catch 
    end 
endfunction 

*/ 

//============================================================================= 


//============================================================================= 
function MSCompiler = dlwFindMsVcCompiler() 
    MSCompiler = "unknown"; // unknown 

    // We use always last version of MS compiler 

    val = getenv("SCILAB_PREFERED_MSVC", ""); 
    if val <> "" then 
     funcs = list(dlwIsVc14Express,dlwIsVc14Pro,dlwIsVc14Express,dlwIsVc12Pro,dlwIsVc11Express,dlwIsVc11Pro,dlwIsVc10Express,dlwIsVc10Pro); 
     compilers = [ ... 
     "msvc140express"; 
     "msvc140pro"; 
     "msvc120express"; 
     "msvc120pro"; 
     "msvc110express"; 
     "msvc110pro"; 
     "msvc100express"; 
     "msvc100pro";]; 
     idx = find(val == compilers); 
     if idx <> [] then 
      func = funcs(idx); 
      if func() then 
       MSCompiler = val; 
       return; 
      end 
     end 
    end 


    if dlwIsVc14Express() then 
     MSCompiler = "msvc140express";  // Microsoft Visual 2015 Express 
     return; 
    end 

    if dlwIsVc14Pro() then 
     MSCompiler = "msvc140pro";  // Microsoft Visual 2015 Professional/Community (or more) 
     return; 
    end 

endfunction 
//=============================================================================