编译QTermWidget

时间:2017-05-11 20:39:40

标签: c++ qt qt5 qt-creator

我已经尝试编译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中使用?

2 个答案:

答案 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可以解决问题。