DEV CPP中使用Clang

在Dev Cpp中前端使用Clang 后端使用GCC,但可能是版本的问题,Clang 3.7的同GCC4.8的stdio库不兼容,后使用visual studio 的nmake来使用,但是nmake 不认识makefile 中的指令如 ${RM} ,没办法只好使用bat来将此指令替换成nmake认识的windows command命令,这样可以使用nmake及visual studio 了,另:使用DevCpp的mingw编译出来的dll文件出奇的大(一个printf("xxxx") release 版的就1M了),换成nmake和visual studio 后变正常。所在在windows 下还是使用visual studio 吧。

替换脚本如下:

@echo off
setlocal enabledelayedexpansion
rem DPATH   : 指定目录
rem FILETYPE: 指定文件类型
rem SCONTENT: 替换前的字符串
rem DCONTENT: 替换后的字符串
rem TMPFILE : 临时文件

set DPATH=E:\C
set FILETYPE=*.win
rem set SCONTENT="${RM}"
rem set DCONTENT="del /f/q"

set DCONTENT=${RM}
set DCONTENT="rmdir /S/Q"

set TMPFILE=%random%.tmp


for /r %DPATH% %%i in ( %FILETYPE% ) do (

    if exist %TMPFILE% ( del /f/q %TMPFILE% )
	
	rem -- for /f "tokens=*" %%j in ('type "%%j"') do
	rem -- (
	rem --	set TMP=%%j
	rem --	set TMP=!TMP:${RM}=del /f/q !
	rem --	echo !TMP!>>%TEPFILE%
	rem -- )
	
	rem -- for /f "tokens=*" %%j in ('type "%%i"') do (	  
    rem --  set TMP=%%j	  
    rem -- echo !TMP:%SCONTENT%=%DCONTENT%!>nul 1>>%TMPFILE%
	rem --)
	
	
	
	rem -- (for /f "tokens=1* delims=:" %%a in ('findstr /n ".*" Makefile.win') do (
	(for /f "tokens=1* delims=:" %%a in ('findstr /n ".*" %%i') do (
		set str=%%b
		if "!str!" neq "" (
        set str=!str:${RM}=rmdir /S/Q!
		)
		echo,!str!
	))>%TMPFILE%
	
    move /y %TMPFILE%  %%i

	"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\nmake.exe"  -f "%%i" /D all
)

endlocal



转载于:https://my.oschina.net/doz/blog/416326

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值