diff --git a/src/pntpos.c b/src/pntpos.c
index 274e4bc62ea5b4f93b56dbf57a691f18c259dc13..f3a58955b3c3bfcb29af42d60fa98fb65a2d5afa 100644
--- a/src/pntpos.c
+++ b/src/pntpos.c
@@ -36,7 +36,7 @@
 #define REL_HUMI    0.7         /* relative humidity for saastamoinen model */
 
 /* pseudorange measurement error variance ------------------------------------*/
-static double varerr(const prcopt_t *opt, double el, double snr_rover, int sys)
+extern double varerr(const prcopt_t *opt, double el, double snr_rover, int sys)
 {
     double a, b, snr_max;
     double fact = opt->err[0];
@@ -74,7 +74,7 @@ static double gettgd(int sat, const nav_t *nav)
     return 0.0;
 }
 /* psendorange with code bias correction -------------------------------------*/
-static double prange(const obsd_t *obs, const nav_t *nav, const double *azel,
+extern double prange(const obsd_t *obs, const nav_t *nav, const double *azel,
                      int iter, const prcopt_t *opt, double *var)
 {
     const double *lam=nav->lam[obs->sat-1];
diff --git a/src/rtklib.h b/src/rtklib.h
index eab337a9acef80637d2501e3e839a41d539bd4bc..c4927f88afd4769d10081d0ddb344b2218eec4b9 100644
--- a/src/rtklib.h
+++ b/src/rtklib.h
@@ -1867,6 +1867,9 @@ EXPORT int lambda_search(int n, int m, const double *a, const double *Q,
 EXPORT int pntpos(const obsd_t *obs, int n, const nav_t *nav,
                   const prcopt_t *opt, sol_t *sol, double *azel,
                   ssat_t *ssat, char *msg);
+EXPORT double prange(const obsd_t *obs, const nav_t *nav, const double *azel,
+                     int iter, const prcopt_t *opt, double *var);
+EXPORT double varerr(const prcopt_t *opt, double el, double snr_rover, int sys);
 
 /* precise positioning -------------------------------------------------------*/
 EXPORT void rtkinit(rtk_t *rtk, const prcopt_t *opt);