Compiling QTermWidget

Compiling QTermWidget

本文关键字:QTermWidget Compiling      更新时间:2023-10-16

我尝试编译这个自定义 QT 小部件,以提供一个可以嵌入到我的应用程序中的终端。我已经在 Cmake 完成之前为我需要的程序编译/安装了构建工具,但 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中使用的自定义小部件?

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 公民,如果它有效,你应该做一个拉取请求和/或提交一个关于它的问题,这样下一个使用该库的人就不会遇到同样的问题。

希望有帮助。

我不知道

为什么会出现问题,因为根据我检查的所有文件,所有内容都正确命名。

不过,将#define ut_user ut_name添加到kpty.h解决了这个问题。