diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
index 5258cb133fad294fc5d65cc89a96b56853f9cf30..778d0b8a508e9d4464db3b5976f01390afa383c2 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
@@ -11,6 +11,8 @@ isEmpty(QBS_BUILD_DIR): QBS_BUILD_DIR = $$(QBS_BUILD_DIR)
 
 QBSLIBDIR = $$QBS_BUILD_DIR/lib
 include($$QBS_SOURCE_DIR/src/lib/use.pri)
+linux-*:QMAKE_LFLAGS += -Wl,-z,origin \'-Wl,-rpath,$$QBSLIBDIR\'
+macx:QMAKE_LFLAGS += -Wl,-rpath,$$QBSLIBDIR
 
 QBS_SOURCE_DIR_FWD_SLASHES = $$replace(QBS_SOURCE_DIR, \\\\, /)
 DEFINES += QBS_SOURCE_DIR=\\\"$$QBS_SOURCE_DIR_FWD_SLASHES\\\"
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
index ecc617edf8b490c5346f0dc30db2c7153a9365bc..4879d532075adb6d6c63e9811d32312fe61f32fe 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
@@ -31,22 +31,20 @@ QtcPlugin {
         'QML_BUILD_STATIC_LIB'
     ])
 
-    cpp.staticLibraries: {
-        if (qbs.targetOS === "windows") {
-            if (qbs.enableDebugCode) {
-                return qbs_build_dir + "/lib/qbscored.lib"
-            } else {
-                return qbs_build_dir + "/lib/qbscore.lib"
-            }
-        } else {
-            return qbs_build_dir + "/lib/libqbscore.a"
-        }
-    }
-
+    cpp.libraryPaths: base.concat([qbs_build_dir + "/lib"])
+    cpp.rpaths: cpp.libraryPaths
     cpp.dynamicLibraries: {
+        var libs = []
         if (qbs.targetOS === "windows") {
-            return "shell32"
+            libs.push("shell32")
+            if (qbs.enableDebugCode)
+                libs.push("qbscored")
+            else
+                libs.push("qbscore")
+        } else {
+            libs.push("qbscore")
         }
+        return libs
     }
 
     files: [