c语言
Johnny_Hu2016
从事嵌入式系统的软件开发10+年,从事过DVD,mcu,arm,最近也在从事iOS和安卓开发。
展开
-
Mac系统下面用eclipse代替source insight查看代码
source insight只要windows版,没有Mac版,所以要方便的查看代码挺不方便,有人说可以用vim+Ctags+CScope,这种方式我曾经尝试过,不过因为要记住很多命令,所以很难上手。后来我发现,用eclipse其实挺方便的,因为eclipse可以建立一个c++项目,然后在在个项目里查看代码就非常方便了,当然,也有一些地方需要设置一下,不让看起来不太舒服,因为eclipse会自动对代原创 2017-05-28 22:39:20 · 2495 阅读 · 0 评论 -
编译sdl项目时出现无法解析的外部符号 __imp__fprintf解决办法
使用vs2015编译ffmpeg的一个小项时,出现了__imp__fprintf和__imp____iob_func 的错误,google了一下,有的人 建议下载SDL源码重新编译一下,当然这个方案非常不科学。所以又继续搜,终于有所发现。这是老外的原话:In visual studio 2015, stdin, stderr, stdout are defined as follo转载 2017-07-01 10:55:36 · 2097 阅读 · 0 评论 -
eclipse建立c语言项目遇到的错误处理
这个错误说没有找到gcc,需要安装MinGW,实际上如果有其他交叉编译器应该也可以的,只要是有gcc,g++这2个可执行文件就行,要把路径设置正确,然后重新建立一个项目,原先不行的删除掉。 上面的图就是路径,可以看到MinGW的路径在C:\上面的图就是选择tool chain的界面建立的过程中又遇到symbol could not resolve 错误 这里的解决办法就是把symbol is原创 2017-06-27 16:58:42 · 1768 阅读 · 0 评论 -
使用cmake把代码移植到MinGW的总结
有一套嵌入式软件是基于gcc编译的,每次调试都要连接真机来运行,因为要升级文件,调试很不方便。既然都是c代码,为什么不能移植到pc上,在pc上进行调试呢,即使底层的寄存器是平台特有的,但完全可以做成一个硬件抽象层,由pc进行模拟,这样上层的逻辑就可以先在pc上实现,底层的部分才需要用真机来调试。 然而想是容易的,真正要实施还是要先评估一下吧。一开始的思路是采用VS2015,因为这边只有window原创 2017-08-23 09:55:54 · 1138 阅读 · 0 评论 -
使用strlen函数之前没有检查空指针导致的死机
今天一个问题浪费了很多时间。 原因就是为了计算一个char *p 的长度。判断长度大于0就表示里面有数据,否则就认为是没有数据。 可是程序运行后,发现没有数据的时候会死机。 按照原先的设想,即使buffer里面都是0,函数最多返回0长度而已,并不应该导致死机啊。后来仔细分析,才发现获取p的API会先做判断,当buffer里面没有数据时,返回NULL,而不是原先的buffer地址。 而由于标准原创 2017-09-20 20:52:38 · 1940 阅读 · 0 评论 -
arm-none-linux-gnueabi-gcc No such file or directory这个错误的解决方法
正常来说只有某个被编译的文件不存在才会报这个错误,但如果确少某个必要的包,也会出现这个问题,而且根本不知道从哪里查问题。 真正原因,这个gcc可执行文件是32位的版本,而在64位系统上需要安装32位兼容包才可以运行正常 用file命令查看这个文件得到: arm-none-linux-gnueabi-gcc: ELF 32-bit LSB executable, Intel 80386,...原创 2018-05-04 16:10:12 · 4881 阅读 · 0 评论 -
移植protobuf遇到的一点小问题
因为要在arm上面运行protobuf,于是开始编译相关的cpp的代码,编译完成之后打算执行example里面的code试一下,于是进入example目录,make,不成功,有错误。最主要的问题是链接时找不到protobuf库,可是我已经把protobuf安装成功了,为什么会找不到呢?后来研究,发现有一个CMakeList.txt,那么尝试用cmake生成一个Makefile试试看吧,运行cm...原创 2018-11-16 14:30:00 · 2558 阅读 · 0 评论