Ваш вопрос сложен для понимания, поэтому я обобщу то, что, по-вашему, вы задали:
В /usr/bin/qmake
установлена qmake
, а в /path/to/Qt/bin/qmake
установлена другая qmake
. Вы хотите использовать /path/to/Qt/bin/qmake
. Вы добавили /path/to/Qt/bin
в переменную окружения PATH
, но вызов which qmake
все еще возвращает /usr/bin/qmake
.
Существует несколько возможных причин:
- Разрешения на
/path/to/Qt/bin/qmake
могут не разрешать вам его выполнять. Убедитесь, что ls -l /path/to/Qt/bin/qmake
показывает, что у вас есть разрешение x
.
- Разрешения для любого каталога выше
/path/to/Qt/bin/qmake
могут не позволять вам проходить каталог. Если вывод ls -l
из предыдущего шага сработал, это не ваша проблема.
- Убедитесь, что
/path/to/Qt/bin
является одной из первых записей в вашей переменной окружения PATH
. Оболочка ищет каталоги от первого до последнего, чтобы найти исполняемые файлы.
- Если вы добавили каталог в
PATH
после выполнения qmake
, оболочка будет хэшировать расположение исполняемого файла qmake
внутри для оптимизации производительности. Исполняемые файлы почти никогда не перемещаются во время сеанса оболочки, так что это полезный способ уменьшить бесполезные системные вызовы. Проверьте вывод hash -t qmake
, чтобы увидеть, произошло ли это. Или просто выполните hash -r
, чтобы заставить оболочку забыть все пути. (Это не имеет серьезных последствий.)