Can't find installed QT4 when using 'make .... xconfig' command
-
Hey folks, (I'm using a Mac OS X Yosemite Version 10.10.2 with the latest xcode installed)
I'm trying to change a kernel file for an open source project using this guide -- http://arachnoid.com/android/Android-x86/ IF ANY OF YOU COULD PLEASE HELP ME FIGURE OUT WHY MY QT (qmake) CAN'T BE FOUND
When I do the following
$ . build/envsetup.sh
$ export ARCH=x86
$ lunch android_x86-eng
$ make -C kernel O=/work/config/.config xconfig #(THIS IS WHERE THE ERROR HAPPENS)I get the following error (even though I installed QT4 from here: https://download.qt.io/archive/qt/4.8/4.8.5/):
$ sudo make -C kernel O=/work/config/.config xconfig
Password:
GEN ./Makefile
CHECK qt- Unable to find the QT4 tool qmake. Trying to use QT3
- Unable to find any QT installation. Please make sure that
- the QT4 or QT3 development package is correctly installed and
- either qmake can be found or install pkg-config or set
- the QTDIR environment variable to the correct location.
make[2]: *** No rule to make target
scripts/kconfig/.tmp_qtcheck', needed by
scripts/kconfig/qconf.o'. Stop.
make[1]: *** [xconfig] Error 2
make: *** [sub-make] Error 2 -
Hi and welcome to devnet,
That's normal, qmake is not your PATH. In the console your are using add the folder containing qmake in your PATH environment variable.
On a side note it's Qt not QT. QT stands for Apple QuickTime.
-
Ahh I see, thank you so much SGaist. Sorry I'm so new to this, how do I add the folder containing qmake to my PATH variable? (sorry for the dublicate question I thought I deleted the other one)
I see my qmake is in this directory:
/Developer/Tools/Qt/qmake
I looked at these links but not too sure:
http://doc.qt.io/qt-4.8/qmake-variable-reference.html
http://doc.qt.io/qt-4.8/qmake-environment-reference.html -
It's not qmake related it's bash configuration.
PATH=$PATH:/Developer/Tools/Qt/
-
That line doesn't change PATH permanently, just for the current terminal until you close it.
-
Right, sorry I did that too. and this is what I got ..... hmm I installed from here https://download.qt.io/archive/qt/4.8/4.8.5/ both qt-mac-opensource-4.8.5.dmg && qt-mac-opensource-4.8.5-debug-libs.dmg
Pavels-MacBook-Pro:android-x86 Pavel$
Pavels-MacBook-Pro:android-x86 Pavel$
Pavels-MacBook-Pro:android-x86 Pavel$
Pavels-MacBook-Pro:android-x86 Pavel$ PATH=$PATH:/Developer/Tools/Qt/
Pavels-MacBook-Pro:android-x86 Pavel$ sudo make -C kernel O=/work/config/.config xconfig
GEN ./Makefile
CHECK qt- Unable to find the QT4 tool qmake. Trying to use QT3
- Unable to find any QT installation. Please make sure that
- the QT4 or QT3 development package is correctly installed and
- either qmake can be found or install pkg-config or set
- the QTDIR environment variable to the correct location.
make[2]: *** No rule to make target
scripts/kconfig/.tmp_qtcheck', needed by
scripts/kconfig/qconf.o'. Stop.
make[1]: *** [xconfig] Error 2
make: *** [sub-make] Error 2
Pavels-MacBook-Pro:android-x86 Pavel$ -
Are you sure that qmake is there ? what does
ls -la /Developers/Tools/Qt
return ? -
@SGaist said:
ls -la /Developers/Tools/Qt
That's a good point you have. I checked and got the following below... seems like it's executable and there.
Pavels-MacBook-Pro:Qt Pavel$ pwd
/Developer/Tools/Qt
Pavels-MacBook-Pro:Qt Pavel$ ls -la
total 200
drwxrwxr-x 27 root admin 918 Nov 8 20:16 .
drwxrwxr-x 4 root admin 136 Nov 10 13:33 ..
lrwxr-xr-x 1 macports wheel 40 Nov 8 20:16 Assistant.app -> /Developer/Applications/Qt/Assistant.app
lrwxr-xr-x 1 macports wheel 39 Nov 8 20:16 Designer.app -> /Developer/Applications/Qt/Designer.app
lrwxr-xr-x 1 macports wheel 39 Nov 8 20:16 Linguist.app -> /Developer/Applications/Qt/Linguist.app
lrwxr-xr-x 1 macports wheel 40 Nov 8 20:16 QMLViewer.app -> /Developer/Applications/Qt/QMLViewer.app
lrwxr-xr-x 1 macports wheel 19 Nov 8 20:16 findtr -> /usr/bin/findtr-4.8
lrwxr-xr-x 1 macports wheel 21 Nov 8 20:16 lconvert -> /usr/bin/lconvert-4.8
lrwxr-xr-x 1 macports wheel 21 Nov 8 20:16 lrelease -> /usr/bin/lrelease-4.8
lrwxr-xr-x 1 macports wheel 20 Nov 8 20:16 lupdate -> /usr/bin/lupdate-4.8
lrwxr-xr-x 1 macports wheel 24 Nov 8 20:16 macdeployqt -> /usr/bin/macdeployqt-4.8
lrwxr-xr-x 1 macports wheel 16 Nov 8 20:16 moc -> /usr/bin/moc-4.8
lrwxr-xr-x 1 macports wheel 40 Nov 8 20:16 pixeltool.app -> /Developer/Applications/Qt/pixeltool.app
lrwxr-xr-x 1 macports wheel 33 Nov 8 20:16 qcollectiongenerator -> /usr/bin/qcollectiongenerator-4.8
lrwxr-xr-x 1 macports wheel 18 Nov 8 20:16 qdbus -> /usr/bin/qdbus-4.8
lrwxr-xr-x 1 macports wheel 25 Nov 8 20:16 qdbuscpp2xml -> /usr/bin/qdbuscpp2xml-4.8
lrwxr-xr-x 1 macports wheel 42 Nov 8 20:16 qdbusviewer.app -> /Developer/Applications/Qt/qdbusviewer.app
lrwxr-xr-x 1 macports wheel 25 Nov 8 20:16 qdbusxml2cpp -> /usr/bin/qdbusxml2cpp-4.8
lrwxr-xr-x 1 macports wheel 18 Nov 8 20:16 qdoc3 -> /usr/bin/qdoc3-4.8
lrwxr-xr-x 1 macports wheel 45 Nov 8 20:16 qhelpconverter.app -> /Developer/Applications/Qt/qhelpconverter.app
lrwxr-xr-x 1 macports wheel 27 Nov 8 20:16 qhelpgenerator -> /usr/bin/qhelpgenerator-4.8
lrwxr-xr-x 1 macports wheel 18 Nov 8 20:16 qmake -> /usr/bin/qmake-4.8
lrwxr-xr-x 1 macports wheel 19 Nov 8 20:16 qt3to4 -> /usr/bin/qt3to4-4.8
lrwxr-xr-x 1 macports wheel 16 Nov 8 20:16 rcc -> /usr/bin/rcc-4.8
lrwxr-xr-x 1 macports wheel 16 Nov 8 20:16 uic -> /usr/bin/uic-4.8
lrwxr-xr-x 1 macports wheel 17 Nov 8 20:16 uic3 -> /usr/bin/uic3-4.8
lrwxr-xr-x 1 macports wheel 24 Nov 8 20:16 xmlpatterns -> /usr/bin/xmlpatterns-4.8
Pavels-MacBook-Pro:Qt Pavel$ -
And if you call qmake directly in the console ?
-
:) seems to output (shown below) the required :/ .... The installation seemed to have went correctly. I'm doing the 'make......xconfig' command (for a linux kernel modification) in a folder on my desktop. Simply going by this guide: http://arachnoid.com/android/Android-x86/
That's where I realized I need the Qt libraries so I installed them from the website. Is possible there is some conflict between some other systems?
I know I can use 'make ... menue config' instead since it doesn't use Qt libraries but it is case-sensitive which sucks on a mac since you need to do modifications there too (source: http://www.linuxchix.org/content/courses/kernel_hacking/lesson2 ) so I'd prefer 'make ... xconfig'Pavels-MacBook-Pro:Qt Pavel$
Pavels-MacBook-Pro:Qt Pavel$ qmake
Usage: qmake [mode] [options] [files]QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing projectMode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *.c; *.ui; *.y; *.l; *.ts; *.xlf; *.qrc; *.h; *.hpp; *.hh; *.hxx; *.H; *.cpp; *.cc; *.cxx; *.C
Note: The created .pro file probably will
need to be edited. For example add the QT variable to
specify what modules are required.
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directoryWarnings Options:
-Wnone Turn off all warnings; specific ones may be re-enabled by
later -W options
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings (on by default)
-Wdeprecated Turn on deprecation warnings (on by default)Options:
- You can place any variable assignment in options and it will be *
- processed as if it was in [files]. These assignments will be parsed *
- before [files]. *
-o file Write output to file
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-after All variable assignments after this will be
parsed after [files]
-norecursive Don't do a recursive search
-recursive Do a recursive search
-set <prop> <value> Set persistent property
-unset <prop> Unset persistent property
-query <prop> Query persistent property. Show all if <prop> is empty.
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
Pavels-MacBook-Pro:Qt Pavel$
-
Just thought of something: you are trying to cross-compile a linux kernel on OS X. You should rather create a virtual machine using e.g. VirtualBox and do everything directly form Linux. That will save you time.