解决从源码编译ncurses6.0编译lib_gen.c报错的问题
2017-03-12 19:05
417 查看
source: http://www.th7.cn/system/lin/201603/157354.shtml
直接从官网的源码编译时,会提示报错:
报错信息提示宏参数不正确,于是在lib_gen.c中搜索wmouse_trafo或者mouse_trafo。
在lib_gen.c中检索时,发现这部分的代码与上边格式不一致,于是尝试手动修改这部分代码,尝试与文件中的其他部分代码一致。
手动修改后,依然继续报错。于是想了解如何自动生成该文件。
在生成日志中,找到如下命令:
了解到lib_gen.c是通过脚本ncurses/base/MKlib_gen.sh读取文件include/curses.h后生成的。
打开include/curses.h文件时,发现该文件是通过多个文件生成合并的。查找到跟wmouse_trafo相关的代码是由curses.tail文件引入生成。
查找到mouse_trafo所在行的代码:
于是怀疑是否因为后边注释的问题导致的。
删除include/curses.h中mouse_trafo所在行的注释,重新make,顺利编译通过.
总结:
这个错误是因为curses.tail文件中的多出来的“/* generated */”注释,删掉它,再删掉curses.h,重新make即可。
热点聚合:编译
源码
ncurses
解决
问题
gen
lib
6.0
直接从官网的源码编译时,会提示报错:
gcc -DHAVE_CONFIG_H -I. -I../include -D_GNU_SOURCE -DNDEBUG -O2 --param max-inline-insns-single=1200 -c ../ncurses/lib_gen.c -o ../objects/lib_gen.oIn file included from ./curses.priv.h:325:0, from ../ncurses/lib_gen.c:19:_18018.c:843:15: error: expected ‘)’ before ‘int’../include/curses.h:1631:56: note: in definition of macro ‘mouse_trafo’ #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) ^Makefile:967: recipe for target '../objects/lib_gen.o' failedmake[1]: *** [../objects/lib_gen.o] Error 1make[1]: Leaving directory '/home/abuu/project/ncurses-6.0/ncurses'Makefile:113: recipe for target 'all' failedmake: *** [all] Error 2
报错信息提示宏参数不正确,于是在lib_gen.c中搜索wmouse_trafo或者mouse_trafo。
在lib_gen.c中检索时,发现这部分的代码与上边格式不一致,于是尝试手动修改这部分代码,尝试与文件中的其他部分代码一致。
手动修改后,依然继续报错。于是想了解如何自动生成该文件。
在生成日志中,找到如下命令:
/bin/sh -e ./base/MKlib_gen.sh "gcc -E -DHAVE_CONFIG_H -I. -I../include -D_GNU_SOURCE -DNDEBUG" "mawk" generated <../include/curses.h >lib_gen.c
了解到lib_gen.c是通过脚本ncurses/base/MKlib_gen.sh读取文件include/curses.h后生成的。
打开include/curses.h文件时,发现该文件是通过多个文件生成合并的。查找到跟wmouse_trafo相关的代码是由curses.tail文件引入生成。
查找到mouse_trafo所在行的代码:
extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */
于是怀疑是否因为后边注释的问题导致的。
删除include/curses.h中mouse_trafo所在行的注释,重新make,顺利编译通过.
总结:
这个错误是因为curses.tail文件中的多出来的“/* generated */”注释,删掉它,再删掉curses.h,重新make即可。
热点聚合:编译
源码
ncurses
解决
问题
gen
lib
6.0
相关文章推荐
- JBoss Portal 2.7.2 源码编译问题及解决
- ubuntu10.10下内核编译,解决开机启动出现Could not load /lib/modules/.../modules.dep的问题
- Ubuntu10.04编译android2.2源码出错问题解决
- 我的第一个C++Builder编译---- 解决lib链接问题
- 编译Android源码时常见问题以及解决方法
- 在使用VS2005 + DXSDK9 + XP编译WebRTC出现dxguid.lib(dxguid.obj) : debugging informati问题的解决方法
- vs2008编译时出现问题解决方法:MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tma
- 解决jdk1.6已经安装,编译android源码报错问题
- 解决ncurses,lib库文件缺失问题
- linux下源码编译 subversion(SVN)- 解决ra_dav模块加载问题(HTTP)
- 如何解决编译iPhone例子报错的问题
- Samba 源码编译安装及Win7/Win8访问问题解决
- vc++6源码在VC2010中编译提示iostream.h库找不到问题的解决办法
- 编译Android源码 解决:[out/host/linux-x86/obj/SHARED_LIBRARIES/libclearsilver-jni_intermediates/j_neo_util.o] 错误 1
- Unix网络编程(卷二)unpv 源码下载及编译报错解决
- Ubuntu编译android源码出错及问题解决
- centos+6.0源码安装xen4.1.1(xen成功安装,但是在重新编译内核时有点小问题)
- UNP(2rd)第二卷源码编译问题及解决
- Lua在 linux下源码编译问题之readline/readline.h:没有那个文件或目录解决方法
- VS2008编译DirectX SDK 2004 summer版的Sound例子程序出现的libcp.lib找不到的问题的解决办法