diff --git a/src/package.rs b/src/package.rs
index a36a6ae..dccb50b 100644
--- a/src/package.rs
+++ b/src/package.rs
@@ -5,10 +5,9 @@
 use crate::{
     get_user_libc_path,
     sdk::{
-        amber_path, cmc_path, fuchsia_dir, package_manager_path, shared_libraries_path,
-        FuchsiaConfig, TargetOptions,
+        amber_path, clang_target_lib_path, cmc_path, fuchsia_dir, package_manager_path,
+        shared_libraries_path, FuchsiaConfig, TargetOptions,
     },
-    target_out_dir,
     utils::{strip_binary, target_crate_path},
     RunCargoOptions,
 };
@@ -240,8 +239,8 @@
         println!("write_manifest_file: target = {:#?}", target);
     }
     let mut manifest = File::create(&target)?;
-    let target_out_path = target_out_dir(target_options.config)?;
-    let target_out_path_str = target_out_path.to_string_lossy();
+    let target_lib_path = clang_target_lib_path(target_options)?;
+    let target_lib_path_str = target_lib_path.to_string_lossy();
     let shared_lib_path = shared_libraries_path(target_options)?;
     let shared_lib_str = shared_lib_path.to_string_lossy();
     let libc_path = format!("{}/libc.so", get_user_libc_path(target_options)?.to_string_lossy());
@@ -249,12 +248,9 @@
     let libsyslog_path = format!("{}/libsyslog.so", shared_lib_str);
     let libtraceengine_path = format!("{}/libtrace-engine.so", shared_lib_str);
     let libasync_path = format!("{}/libasync-default.so", shared_lib_str);
-    let libcpp2_path =
-        format!("{}/obj/build/images/fuchsia.zbi/bootfs/lib/libc++.so.2", target_out_path_str,);
-    let libcpp1abi_path =
-        format!("{}/obj/build/images/fuchsia.zbi/bootfs/lib/libc++abi.so.1", target_out_path_str,);
-    let libunwind_path =
-        format!("{}/obj/build/images/fuchsia.zbi/bootfs/lib/libunwind.so.1", target_out_path_str,);
+    let libcpp2_path = format!("{}/libc++.so.2", target_lib_path_str);
+    let libcpp1abi_path = format!("{}/libc++abi.so.1", target_lib_path_str);
+    let libunwind_path = format!("{}/libunwind.so.1", target_lib_path_str);
 
     let additional_libs: Vec<String> = run_cargo_options
         .fargo_manifest
diff --git a/src/sdk.rs b/src/sdk.rs
index 6fed023..39d563d 100644
--- a/src/sdk.rs
+++ b/src/sdk.rs
@@ -2,8 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-use crate::utils::is_mac;
-use crate::X64;
+use crate::{get_triple_cpu, utils::is_mac, X64};
 use failure::{bail, Error, ResultExt};
 use std::path::PathBuf;
 use std::process::Command;
@@ -171,6 +170,14 @@
     Ok(prebuilt_path()?.join("third_party/clang").join(platform_name()))
 }
 
+pub fn clang_lib_path() -> Result<PathBuf, Error> {
+    Ok(clang_base_path()?.join("lib"))
+}
+
+pub fn clang_target_lib_path(options: &TargetOptions<'_, '_>) -> Result<PathBuf, Error> {
+    Ok(clang_lib_path()?.join(format!("{}-unknown-fuchsia", get_triple_cpu(options))))
+}
+
 pub fn clang_c_compiler_path() -> Result<PathBuf, Error> {
     Ok(clang_base_path()?.join("bin").join("clang"))
 }
