在从官网上下载了emwin的仿真工程后,在我的vs2015上运行,第一次编译运行我就被被被懵逼了、、、特么的一堆错误,当然,作为一个菜鸟,我估摸着这肯定是工程设置有问题,千万不要手贱动代码,然后百度,
后来通过百度发现类似的问题,提到了忽略库文件会导致这种错误,于是乎通过下面这个设置
将忽略所有默认库选为“否”,否则链接时会提示找不到对应函数。继续编译,又出现下面这个错误
在万能的CSDN上找到了归宿,办法就是忽略指定的默认库(libc.lib),
好了,这下总该可以了吧,编译运行,我擦这是什么鬼
冲突冲突、、、在刚刚的帖子里最下边有段重点
第二章图片我们看到里面工程默认使用了多线程(libcmt.lib),但是又同时包含了msvcrt.lib和msvcrtd.lib,所以将这两个依赖库手动去掉后,应该就可以解决问题了
当附加依赖项只剩下libcmt.lib后,不存在冲突现象,果然一次性编译运行成功,
第二次补充:
上面的部分完成以后可以实现官方的例程,也就是Application里的东西,但是我们在学emwin的时候起初肯定不会使用它,当我们注释掉这里面的文件并添加Sample里的文件到工程中去时,会出现如下错误
这时你需要按照上面的方法在附加依赖项里加入"legacy_stdio_definitions.lib",编译即可通过。
如果上面步骤完成后依然出现如下错误
根据提示可以知道,你在屏蔽了Application里的所有文件后,却没有将Sample里的东西添加到工程中(取消屏蔽),因为每个Sample里的每个例程都是由一个MainTask函数来主导的,而这个segger的模拟程序会调用MainTask(如图中说的在_Thread@4中被引用),所以不可没有也不可重复,像这样: