‘壹’ MDK编译出现“Target not created ”是什么原因
出现Target not created,原因主要有:
编译时出错,语法错误,变量未定义。
连接时出错,调用外部函数,而由缺少相应的OBJ文件。
其他原因,用Demo版,限制是程序不能大于4K,结果你超过了4k。
‘贰’ keil编译时报错:error: L6002U: Could not open file .\***\core_cm3.o
历时好几次的碰壁,我终于解决这个问题了。
根据网络其他答案给的思路,其实就是修改环境变量,因为当前系统TEMP和TMP环境变量存在着中文。但是如果你直接修改 %USERPROFILE% 为其他英文路径开Keil会卡死并闪退(其实是你打开main.c就闪退)!!!
因为修改成别的一个英文文件夹是不行的,你只是在环境变量中修改了文件路径,但是电脑中这些路径并不存在,所以你打开Keil才会闪退。
那么解决问题的关键就是:先在系统C盘中创建好了所有的英文路径,再你创建的文件夹路径修改环境变量!!!
准备工作:先将你的Keil软件关闭
1、在【C盘根目录】创建【UserData】文件夹

点击确定后退出。
再次打开Keil编译即可不再报错,再次愉快写代码吧。
祝愿诸位万事如意。
‘叁’ 怎么解决MDK编译的问题
warning: #550-D: variable "d" was set but never used
描述变姿世哗量'd'定义但从未使用或者是虽然这个变量你使用了但编译器认为变量d所在的语句没有意义编返卖译器把它优化了解决仔细衡量所定义的变量d是否有用
若是认定变量d所在语句有意义那么尝试用volatile关键字修饰变量d,若是真的没有用那么删除掉以释放可能的内存
.warning: #1-D: last line of file ends without a newline
描述:
文件最后一行不是新的一行
编译器要求程序文件的最后一行必须是空行想了半天没想通为什么要这样解决可以不理会若是觉得出现警告不迹行爽那么在出现警告的文件的最后一行敲个回车空出一行
warning: #111-D: statement is unreachable
描述:
声明不可能到达多出现在这种场合
int main(void)
{
...
while(1) //
无限循环
,
这在不使用操作系统的程序中最常见
‘肆’ MDK编译提示main.c(7): warning: #550-D: variable "XX" was set but never used怎么破
定义了变量key,使用key的代码为:key = SPI2_ReadWriteByte(0x00);执行函数并将函数返回值赋值给key,没有使用这个返回。
比如
int b=a;
从a中读取数据负值给b.
其实,我是感觉声明和负值的地方离那么远很奇怪。
反正循环里面又不用,为什么不到负值的时候才声明。

(4)mdk编译器出现问题扩展阅读:
使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。在VB Script中只有一个基本数据类型,即Variant,因此所有变量的数据类型都是Variant。
例如,可以创建一个名为Click Count的变量来存储用户单击Web页面上某个对象的次数。