Это на самом деле более или менее по своему замыслу, я думаю. Сборка внутри папки с исходными текстами должна немного отличаться от сборки с установленным деревом, просто для того, чтобы можно было, например, делать разумные обновления (предварительно собрать все на месте, не ссылаясь на какую-либо существующую сборку).
Я полагаю, что "трюк" выполняется с определенным файлом .qmake.cache
в исходной папке верхнего уровня (~/qt-everywhere-opensource-src-4.7.2
в вашем случае), который создается при настройке дерева исходных текстов (в котором происходит сборка qmake
). ).
Попробуйте скопировать этот файл в новое место сборки (~/cvswork/fullscreenbrowser/
или ~/cvswork
, если у вас есть другие проекты, он тоже должен там выглядеть), и перезапустите qmake
(убедитесь, что вы используете тот, который находится внутри Qt исходный каталог).
Это должно работать, если вы просто настроили исходное дерево.
Вот первые строки этого .qmake.cache
файла на моей машине после распаковки и настройки старого архива Qt:
CONFIG += release shared dll largefile stl precompile_header mmx 3dnow sse sse2 sse3 ssse3 sse4_1 sse4_2 avx dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
QT_SOURCE_TREE = $$quote(/home/foo/src/qt-everywhere-opensource-src-4.7.3)
QT_BUILD_TREE = $$quote(/home/foo/src/qt-everywhere-opensource-src-4.7.3)
QT_BUILD_PARTS = libs tools examples demos docs translations
QMAKE_ABSOLUTE_SOURCE_ROOT = $$QT_SOURCE_TREE
QMAKE_MOC_SRC = $$QT_BUILD_TREE/src/moc
#local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
QMAKE_MOC = $$QT_BUILD_TREE/bin/moc
QMAKE_UIC = $$QT_BUILD_TREE/bin/uic
QMAKE_UIC3 = $$QT_BUILD_TREE/bin/uic3
QMAKE_RCC = $$QT_BUILD_TREE/bin/rcc
QMAKE_QDBUSXML2CPP = $$QT_BUILD_TREE/bin/qdbusxml2cpp
QMAKE_INCDIR_QT = $$QT_BUILD_TREE/include
QMAKE_LIBDIR_QT = $$QT_BUILD_TREE/lib
QMAKE_LFLAGS = -Wl,-rpath-link,$$QT_BUILD_TREE/lib $$QMAKE_LFLAGS
QT_CFLAGS_PSQL = -I/usr/include/postgresql-8.4
QT_LFLAGS_PSQL = -L/usr/lib64/postgresql-8.4/lib64
QT_CFLAGS_MYSQL = -I/usr/include/mysql
QT_LFLAGS_MYSQL = -Wl,-O1 -Wl,--as-needed -rdynamic -L/usr/lib64/mysql -lmysqlclient_r -L/usr//lib64 -lz -lpthread -lcrypt -lnsl -lm -lpthread -L/usr/lib64/ -lssl -lcrypto
Q T_LFLAGS_ODBC = -lodbc
QMAKESPEC = $$QT_BUILD_TREE/mkspecs/linux-g++-64
...
Как видите, многие фундаментальные переменные qmake
переопределяются этим префиксом дерева сборки.
(Не уверен, почему вы просто не установите Qt где-нибудь в вашем домашнем каталоге. У вас не будет этой боли, и вам не понадобится root
, для этого я думаю как До тех пор, пока префикс ваш - вы не пробовали это годами, поэтому YMMV.)