diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp index 6ffa52e8699..25048dea339 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp @@ -66,6 +66,8 @@ #include #include #include +#include +#include using namespace Qt4ProjectManager::Internal; using namespace Qt4ProjectManager; @@ -607,9 +609,19 @@ Utils::Environment Qt4RunConfiguration::baseEnvironment() const // to find those libraries while actually running we explicitly prepend those // dirs to the library search path const Qt4ProFileNode *node = qt4Target()->qt4Project()->rootProjectNode()->findProFileFor(m_proFilePath); - if (node) - foreach(const QString &dir, node->variableValue(LibDirectoriesVar)) - env.prependOrSetLibrarySearchPath(dir); + if (node) { + const QStringList libDirectories = node->variableValue(LibDirectoriesVar); + if (!libDirectories.isEmpty()) { + const QString proDirectory = QFileInfo(node->path()).absolutePath(); + foreach (QString dir, libDirectories) { + // Fix up relative entries like "LIBS+=-L.." + const QFileInfo fi(dir); + if (!fi.isAbsolute()) + dir = QDir::cleanPath(proDirectory + QLatin1Char('/') + dir); + env.prependOrSetLibrarySearchPath(dir); + } // foreach + } // libDirectories + } // node return env; }