JakeSays / QtCreatorTerminalPlugin

Provides an embedded terminal/shell for Qt Creator
Other
20 stars 7 forks source link

Compilation errors mostly due to QT6 QStringList #1

Closed fabiomanz closed 2 years ago

fabiomanz commented 3 years ago

base/config/kconfigbase.h:31: error: definition of type 'QStringList' conflicts with type alias of the same name In file included from ../QtCreatorTerminalPlugin-master 2/config/kconfig.cpp:23: In file included from ../QtCreatorTerminalPlugin-master 2/config/kconfig.h:27: ../QtCreatorTerminalPlugin-master 2/config/kconfigbase.h:31:7: error: definition of type 'QStringList' conflicts with type alias of the same name class QStringList; ^ /Users/fabio/Qt/6.1.2/macos/lib/QtCore.framework/Headers/qcontainerfwd.h:65:7: note: 'QStringList' declared here using QStringList = QList; ^

I am getting like 50 errors because of QStrigList. Are you able to port the code to QT6?

JakeSays commented 3 years ago

I don't see the need for a qt6 port until creator itself is ported to qt6.

fabiomanz commented 3 years ago

Ok, then I will stick to Qt5. I still have a problem compiling the library using following configuration Desktop Qt 5.12.11 clang 64bit on Mac. I will try to fix Mac related issues like missing includes, etc. But QT Creator isn't finding coreplugin/id.h: TerminalPlugin.cpp:15: error: 'coreplugin/id.h' file not found

_base_/TerminalPlugin.cpp:15:10: fatal error: 'coreplugin/id.h' file not found
#include <coreplugin/id.h>
         ^~~~~~~~~~~~~~~~~

Why do you think the header is missing? All the other headers are found.

JakeSays commented 3 years ago

5.12 is a bit old. Which version of creator are you building against?

fabiomanz commented 3 years ago

Qt Creator 4.15.1

JakeSays commented 3 years ago

You'll want to use Qt 5.15.2. I'm currently on creator 4.15.0 so haven't tried 4.15.1. I'll see if I can upgrade later tonight.

fabiomanz commented 3 years ago

I have tried to compile it with Qt 5.15.2, which solved some issues, but the include is still missing. Thank you for your help

JakeSays commented 3 years ago

LOL so I just looked at my code. I have that header commented out. I'll push an update in a minute.

JakeSays commented 3 years ago

Ok try it now

fabiomanz commented 3 years ago

Sadly I still have some errors. The problems mainly consist of the header termio.h missing.

.moc/debug-shared/moc_KPtyProcess.cpp:74:29: error: member access into incomplete type 'KPtyProcessPrivate'
        case 0: _t->d_func()->_k_onStateChanged((*reinterpret_cast< QProcess::ProcessState(*)>(_a[1]))); break;
                            ^
.moc/debug-shared/../../../QtCreatorTerminalPlugin/kptyprocess.h:29:7: note: forward declaration of 'KPtyProcessPrivate'
class KPtyProcessPrivate;
      ^
.moc/debug-shared/moc_KPtyProcess.cpp:68:89: warning: unused parameter '_a' [-Wunused-parameter]
void KPtyProcess::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
                                                                                        ^
1 warning and 1 error generated.
make: *** [.obj/debug-shared/moc_KPtyProcess.o] Error 1
make: *** Waiting for unfinished jobs....
../QtCreatorTerminalPlugin/kpty.cpp:231:11: error: no member named 'openpty' in the global namespace
    if (::openpty(&d->masterFd, &d->slaveFd, ptsn, nullptr, nullptr)) {
        ~~^
../QtCreatorTerminalPlugin/kpty.cpp:597:5: error: use of undeclared identifier 'utmpname'; did you mean 'tmpnam'?
    utmpname(_PATH_UTMP);
    ^~~~~~~~
    tmpnam
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/stdio.h:188:7: note: 'tmpnam' declared here
char    *tmpnam(char *);
         ^
../QtCreatorTerminalPlugin/kpty.cpp:597:14: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
    utmpname(_PATH_UTMP);
             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/utmp.h:78:20: note: expanded from macro '_PATH_UTMP'
#define _PATH_UTMP      "/var/run/utmp"
                        ^
../QtCreatorTerminalPlugin/kpty.cpp:598:5: error: use of undeclared identifier 'setutent'
    setutent();
    ^
../QtCreatorTerminalPlugin/kpty.cpp:599:5: error: use of undeclared identifier 'pututline'
    pututline(&l_struct);
    ^
../QtCreatorTerminalPlugin/kpty.cpp:600:5: error: use of undeclared identifier 'endutent'
    endutent();
    ^
../QtCreatorTerminalPlugin/kpty.cpp:601:5: error: use of undeclared identifier 'updwtmp'
    updwtmp(_PATH_WTMP, &l_struct);
    ^
../QtCreatorTerminalPlugin/kpty.cpp:659:5: error: use of undeclared identifier 'utmpname'; did you mean 'tmpnam'?
    utmpname(_PATH_UTMP);
    ^~~~~~~~
    tmpnam
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/stdio.h:188:7: note: 'tmpnam' declared here
char    *tmpnam(char *);
         ^
../QtCreatorTerminalPlugin/kpty.cpp:659:14: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
    utmpname(_PATH_UTMP);
             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/utmp.h:78:20: note: expanded from macro '_PATH_UTMP'
#define _PATH_UTMP      "/var/run/utmp"
                        ^
../QtCreatorTerminalPlugin/kpty.cpp:660:5: error: use of undeclared identifier 'setutent'
    setutent();
    ^
../QtCreatorTerminalPlugin/kpty.cpp:661:15: error: use of undeclared identifier 'getutline'
    if ((ut = getutline(&l_struct))) {
              ^
../QtCreatorTerminalPlugin/kpty.cpp:678:9: error: use of undeclared identifier 'pututline'
        pututline(ut);
        ^
../QtCreatorTerminalPlugin/kpty.cpp:680:5: error: use of undeclared identifier 'endutent'
    endutent();
    ^
JakeSays commented 3 years ago

Yeah. That code is pretty linux specific. kpty.cpp is also a bit of a mess.

fabiomanz commented 3 years ago

Do you think it would be able to change that because I am not able to do that with my current knowledge?

JakeSays commented 3 years ago

Unfortunately I don't own a mac so I have no way of adding the functionality.

isgursoy commented 2 years ago

I don't see the need for a qt6 port until creator itself is ported to qt6.

Now it is.

JakeSays commented 2 years ago

@isgursoy creator won't be on Qt 6 until version 6.

isgursoy commented 2 years ago

@isgursoy creator won't be on Qt 6 until version 6.

Now it is.

isgursoy commented 2 years ago

version 7.

JakeSays commented 2 years ago

@isgursoy I consulted with my job and all the other time consuming demands that I have and they all agreed that your ability to count doesn't raise the priority level of this project.