coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
阅读:3812回复:2

Windows下使用Intel C++ Compiler编译Firefox

楼主#
更多 发布于:2010-01-27 17:45
http://hi.baidu.com/coolypf

Linux下用icc替换gcc编译Firefox比较容易,Windows下用icl替换cl则很困难。

下面的程序可以帮助骗过configure脚本,将编译所得程序重命名为cl,放入msys/bin目录中。

make -f client.mk build启动编译,遇到错误停止时,configure步骤已经过去,

可以用make -f client.mk build CC=icl CXX=icl继续编译。

目前测试,可以顺利完成整个编译过程(有些代码要稍加修改),但ICC启用PGO选项后编译出来的程序没法运行。
coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
1楼#
发布于:2010-01-27 17:45
/*********************************
 * ICC wrapper for Mozilla Build *
 * by coolypf           20100127 *
 *********************************/

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string>

using std::string;

char cl[]="c:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\BIN\\cl.exe";
char icl[]="c:\\Program Files (x86)\\Intel\\Compiler\\11.1\\051\\Bin\\ia32\\icl.exe";
char clflags[]="/O2";
char iclerr[]=": error: ";
PROCESS_INFORMATION pi;

HANDLE Exec(const char *cmd)
{
	SECURITY_ATTRIBUTES sa; 
	HANDLE hRead,hWrite; 
	sa.nLength = sizeof(SECURITY_ATTRIBUTES); 
	sa.lpSecurityDescriptor = NULL; 
	sa.bInheritHandle = TRUE; 
	if (!CreatePipe(&hRead,&hWrite,&sa,0))
	{ 
		printf("Error On CreatePipe()"); 
		exit(-1); 
	} 
	STARTUPINFOA si;
	si.cb = sizeof(STARTUPINFO); 
	GetStartupInfoA(&si); 
	si.hStdError = hWrite; 
	si.hStdOutput = hWrite; 
	si.wShowWindow = SW_HIDE;
	si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; 
	if (!CreateProcessA(NULL,_strdup(cmd),NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
	{ 
		printf("Error on CreateProcess()"); 
		exit(-1); 
	} 
	CloseHandle(hWrite); 
	return hRead;
}
coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
2楼#
发布于:2010-01-27 17:45
剩下的代码实在发不上来,不知道是不是人品问题。

请去我的博客观看:

http://hi.baidu.com/coolypf
游客

返回顶部