MTK 编译出错

最近因工作需要在学习MTK,用的是MT6252。

刚拿到代码,编译环境配置好之后就开始第一次编译。

make new D805_RDA_GPRS,可刚开始没多久就出错了,提示“Could not run cl.exe. Please check your PATH!”,百度说是路径不对,我就按照他说的分析make2.pl,

die "Could not run \"cl.exe\". Please check your PATH!\n" if ($is_cl != 0);


查询语法发现是 $is_cl 不对,于是就向上查询,跟到这里。


{
	$cl = 'cl';
	$is_msdev = 0;
	$is_cl = 0;
	$VSCommonDir = "C:\\Program Files\\Microsoft Visual Studio\\Common";
	$MSDevDir = "C:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98";
	$MSVCDir = "C:\\Program Files\\Microsoft Visual Studio\\VC98";
	$VcOsDir = "WIN95";
	if (($newMoDIS == 1) || ($atMoDIS == 1) || ($action =~ /MoDIS/i)) {
		if ((-d $VSCommonDir) && (-d $MSDevDir) && (-d $MSVCDir)) {
			if ($ENV{"OS"} eq "Windows_NT") {
				$VcOsDir = "WINNT";
				$ENV{"PATH"} = "${MSDevDir}\\BIN;${MSVCDir}\\BIN;${VSCommonDir}\\TOOLS\\${VcOsDir};${VSCommonDir}\\TOOLS;" . $ENV{"PATH"};
			} else {
				$ENV{"PATH"} = "${MSDevDir}\\BIN;${MSVCDir}\\BIN;${VSCommonDir}\\TOOLS\\${VcOsDir};${VSCommonDir}\\TOOLS;" .$ENV{"windir"}. "\\SYSTEM;" . $ENV{"PATH"};
			}
			$ENV{"INCLUDE"} = "${MSVCDir}\\ATL\\INCLUDE;${MSVCDir}\\INCLUDE;${MSVCDir}\\MFC\\INCLUDE;". $ENV{"INCLUDE"};
			$ENV{"LIB"} = "${MSVCDir}\\LIB;${MSVCDir}\\MFC\\LIB;". $ENV{"LIB"};
		} else {
			print "$VSCommonDir does NOT exist!\n" if (!-d $VSCommonDir);
			print "$MSDevDir does NOT exist!\n" if (!-d $MSDevDir);
			print "$MSVCDir does NOT exist!\n" if (!-d $MSVCDir);
		}
		$is_msdev = system("$msdev /? > nul 2>&1");
		$is_cl = system("$cl > nul 2>&1");
	}
}
elsif ($MoDIS_vc9 eq 1)
{
	$cl = 'cl';
	$is_devenv = 0;
	$is_cl = 0;
	$VSCommonDir = "C:\\Program Files\\Microsoft Visual Studio 9.0\\Common7";
	$MSVCDir = "C:\\Program Files\\Microsoft Visual Studio 9.0\\VC"; 
	$VcOsDir = "WIN95";
	$FrameworkDir = "C:\\WINDOWS\\Microsoft.NET\\Framework";
	$WindowsSDKDir = "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A";
	if (($newMoDIS == 1) || ($atMoDIS == 1) || ($action =~ /MoDIS/i)) {
		if ((-d $VSCommonDir) && (-d $MSVCDir)) {
			if ($ENV{"OS"} eq "Windows_NT") {
				$VcOsDir = "WINNT";
				$ENV{"PATH"} = "${WindowsSDKDir}\\bin;${VSCommonDir}\\IDE;${MSVCDir}\\BIN;${MSVCDir}\\vcpackages;${VSCommonDir}\\Tools\\${VcOsDir};${FrameworkDir}\\v3.5;${FrameworkDir}\\v2.0.50727;" . $ENV{"PATH"};
			} else {
				$ENV{"PATH"} = "${WindowsSDKDir}\\bin;${VSCommonDir}\\IDE;${MSVCDir}\\BIN;${MSVCDir}\\vcpackages;${VSCommonDir}\\Tools;${FrameworkDir}\\v3.5;${FrameworkDir}\\v2.0.50727;" . $ENV{"windir"}. "\\SYSTEM;" . $ENV{"PATH"};
			}
			$ENV{"INCLUDE"} = "${WindowsSDKDir}\\Include;${MSVCDir}\\ATLMFC\\INCLUDE;${MSVCDir}\\INCLUDE;". $ENV{"INCLUDE"};
			$ENV{"LIB"} = "${WindowsSDKDir}\\Lib;${MSVCDir}\\ATLMFC\\LIB;${MSVCDir}\\LIB;". $ENV{"LIB"};
		} else {
			print "$VSCommonDir does NOT exist!\n" if (!-d $VSCommonDir);
			print "$MSVCDir does NOT exist!\n" if (!-d $MSVCDir);
		}
		$is_devenv = system("$devenv /? >nul 2>&1");
		$is_cl = system("$cl >nul 2>&1"); 
		$is_vcpro = system("devenv /? >nul 2>&1") || &chk_vc9();
		$modis_enable_sln = 2 if ($is_vcpro == 0);
	}	
}

再往上查询可以发现 $MoDIS_vc9 的值为1,也就是说编译器的路径为 C:\\Program Files\\Microsoft Visual Studio 9.0\\Common7,而这个路径我电脑上是没有的。

于是我就把if 跟else 的条件换了下,变成 if ($MoDIS_vc9 eq 1),这样在编译不在提示“Could not run cl.exe. Please check your PATH!” 这个错误。


可问题并没有解决,接着有出现问题了 提示 “Could not run  vcbuild.exe. Please check your PATH!” 错误,编译中断。

百度之后并没有找到解决方法。于是查了vcbuild.exe 发现是vs2008中才有的。

于是,下载安装VS2008,将上面的 if ($MoDIS_vc9 eq 1)改回原来的值,在编译不再出错。问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值