我已经尝试编译this custom QT widget to provide a terminal that I can embed into my application.我在Cmake完成之前编译/安装了the build tools for the program我需要的,但是make步骤是抛出谷歌对它没有太大帮助的错误:
[ 50%] Building CXX object CMakeFiles/qtermwidget5.dir/lib/kpty.cpp.o
/Users/a7c/qtermwidget/qtermwidget-master/lib/kpty.cpp:506:26: error: no member named 'ut_name' in 'utmpx'
strncpy(l_struct.ut_name, user, sizeof(l_struct.ut_name));
~~~~~~~~ ^
/Users/a7c/qtermwidget/qtermwidget-master/lib/kpty.cpp:506:57: error: no member named 'ut_name' in 'utmpx'
strncpy(l_struct.ut_name, user, sizeof(l_struct.ut_name));
~~~~~~~~ ^
/Users/a7c/qtermwidget/qtermwidget-master/lib/kpty.cpp:617:20: error: no member named 'ut_name' in 'utmpx'
memset(ut->ut_name, 0, sizeof(*ut->ut_name));
~~ ^
/Users/a7c/qtermwidget/qtermwidget-master/lib/kpty.cpp:617:44: error: no member named 'ut_name' in 'utmpx'
memset(ut->ut_name, 0, sizeof(*ut->ut_name));
~~ ^
4 errors generated.
make[2]: *** [CMakeFiles/qtermwidget5.dir/lib/kpty.cpp.o] Error 1
make[1]: *** [CMakeFiles/qtermwidget5.dir/all] Error 2
make: *** [all] Error 2
有没有人能解决这个问题?
作为扩展,有效地如何有效地包含自定义小部件以便在QT Creator中使用?
答案 0 :(得分:4)
http://pubs.opengroup.org/onlinepubs/7908799/xsh/utmpx.h.html
看起来它在utmpx.h的股票版本中不包含ut_name
。
如果你看看它的这个版本:
https://code.woboq.org/kde/include/bits/utmp.h.html
他们有一个“向后兼容性黑客”:
87 /* Backwards compatibility hacks. */
88 #define ut_name ut_user
您可能希望升级包含该标头的库。或者只是在代码中插入#define
。作为一个优秀的github公民,如果它有效,你应该做一个拉取请求和/或提交一个关于它的问题,以便使用该库的下一个人不会遇到同样的问题。
希望有所帮助。
答案 1 :(得分:1)
我不知道为什么问题发生了,因为根据我检查的所有文件,所有内容都被正确命名。
将#define ut_user ut_name
添加到kpty.h可以解决问题。