编译mg-samples-3.0.12报错:libminigui_ths.so: undefined reference to `WndClientRect'解决方法

用gcc 5.2.0去编译mg-samples-3.0.12,报错:

.../lib/libminigui_ths.so: undefined reference to `WndClientRect'
.../lib/libminigui_ths.so: undefined reference to `pixel2rgb'

.../lib/libminigui_ths.so: undefined reference to `WndRect'

解决方法:

$cd libminigui-3.0.12-linux

$grep -r "WndClientRect" .

发现WndClientRect在libminigui-3.0.12-linux/src/newgdi/gdi.c中,将inline void WndRect(HWND hWnd, PRECT prc)和inline void WndClientRect(HWND hWnd, PRECT prc)前面的inline去掉。

$grep -r "pixel2rgb" .

发现pixel2rgb在libminigui-3.0.12-linux/src/mybmp/winbmp.c中,将inline void pixel2rgb (gal_pixel pixel, GAL_Color* color, int depth)前面的inline去掉。

$make clean;make;make install

重新生成库文件。

再去编例子程序就OK了。

原因:

因编译器版本差异,c99对inline的处理与c89的extern inline一致,没有外部可见的函数生成,但是外部可见的函数必须存在,因为有可能会用到它。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值