--- a/src/libjasper/include/jasper/jas_cm.h
+++ b/src/libjasper/include/jasper/jas_cm.h
@@ -237,13 +237,13 @@ int jas_cm_prof_setattr(jas_cm_prof_t *prof, jas_cm_attrname_t name, void *val);
 void *jas_cm_prof_getattr(jas_cm_prof_t *prof, jas_cm_attrname_t name);
 #endif
 
-jas_cmxform_t *jas_cmxform_create(jas_cmprof_t *inprof, jas_cmprof_t *outprof,
+JAS_DLLEXPORT jas_cmxform_t *jas_cmxform_create(jas_cmprof_t *inprof, jas_cmprof_t *outprof,
   jas_cmprof_t *proofprof, int op, int intent, int optimize);
 
-void jas_cmxform_destroy(jas_cmxform_t *xform);
+JAS_DLLEXPORT void jas_cmxform_destroy(jas_cmxform_t *xform);
 
 /* Apply a transform to data. */
-int jas_cmxform_apply(jas_cmxform_t *xform, jas_cmpixmap_t *in,
+JAS_DLLEXPORT int jas_cmxform_apply(jas_cmxform_t *xform, jas_cmpixmap_t *in,
   jas_cmpixmap_t *out);
 
 int jas_cxform_optimize(jas_cmxform_t *xform, int optimize);
--- a/src/libjasper/include/jasper/jas_debug.h
+++ b/src/libjasper/include/jasper/jas_debug.h
@@ -107,10 +107,10 @@ JAS_DLLEXPORT int jas_setdbglevel(int dbglevel);
 JAS_DLLEXPORT int jas_eprintf(const char *fmt, ...);
 
 /* Dump memory to a stream. */
-int jas_memdump(FILE *out, void *data, size_t len);
+JAS_DLLEXPORT int jas_memdump(FILE *out, void *data, size_t len);
 
 /* Warn about use of deprecated functionality. */
-void jas_deprecated(const char *s);
+JAS_DLLEXPORT void jas_deprecated(const char *s);
 
 /* Convert to a string literal */
 #define JAS_STRINGIFY(x) #x
--- a/src/libjasper/include/jasper/jas_icc.h
+++ b/src/libjasper/include/jasper/jas_icc.h
@@ -395,10 +395,10 @@ JAS_DLLEXPORT jas_iccattrval_t *jas_iccattrval_create(jas_iccuint32_t type);
 
 JAS_DLLEXPORT void jas_iccattrtab_dump(jas_iccattrtab_t *attrtab, FILE *out);
 
-extern jas_uchar jas_iccprofdata_srgb[];
-extern int jas_iccprofdata_srgblen;
-extern jas_uchar jas_iccprofdata_sgray[];
-extern int jas_iccprofdata_sgraylen;
+JAS_DLLEXPORT extern jas_uchar jas_iccprofdata_srgb[];
+JAS_DLLEXPORT extern int jas_iccprofdata_srgblen;
+JAS_DLLEXPORT extern jas_uchar jas_iccprofdata_sgray[];
+JAS_DLLEXPORT extern int jas_iccprofdata_sgraylen;
 JAS_DLLEXPORT jas_iccprof_t *jas_iccprof_createfrombuf(jas_uchar *buf, int len);
 JAS_DLLEXPORT jas_iccprof_t *jas_iccprof_createfromclrspc(int clrspc);
 
--- a/src/libjasper/include/jasper/jas_image.h
+++ b/src/libjasper/include/jasper/jas_image.h
@@ -492,21 +492,21 @@ JAS_DLLEXPORT int jas_image_getfmt(jas_stream_t *in);
 
 
 #define	jas_image_cmprof(image)	((image)->cmprof_)
-int jas_image_ishomosamp(jas_image_t *image);
-int jas_image_sampcmpt(jas_image_t *image, int cmptno, int newcmptno,
+JAS_DLLEXPORT int jas_image_ishomosamp(jas_image_t *image);
+JAS_DLLEXPORT int jas_image_sampcmpt(jas_image_t *image, int cmptno, int newcmptno,
   jas_image_coord_t ho, jas_image_coord_t vo, jas_image_coord_t hs,
   jas_image_coord_t vs, int sgnd, int prec);
-int jas_image_writecmpt2(jas_image_t *image, int cmptno, jas_image_coord_t x,
+JAS_DLLEXPORT int jas_image_writecmpt2(jas_image_t *image, int cmptno, jas_image_coord_t x,
   jas_image_coord_t y, jas_image_coord_t width, jas_image_coord_t height,
   long *buf);
-int jas_image_readcmpt2(jas_image_t *image, int cmptno, jas_image_coord_t x,
+JAS_DLLEXPORT int jas_image_readcmpt2(jas_image_t *image, int cmptno, jas_image_coord_t x,
   jas_image_coord_t y, jas_image_coord_t width, jas_image_coord_t height,
   long *buf);
 
 #define	jas_image_setcmprof(image, cmprof) ((image)->cmprof_ = cmprof)
 JAS_DLLEXPORT jas_image_t *jas_image_chclrspc(jas_image_t *image, jas_cmprof_t *outprof,
   int intent);
-void jas_image_dump(jas_image_t *image, FILE *out);
+JAS_DLLEXPORT void jas_image_dump(jas_image_t *image, FILE *out);
 
 /******************************************************************************\
 * Image format-dependent operations.
@@ -514,58 +514,58 @@ void jas_image_dump(jas_image_t *image, FILE *out);
 
 #if !defined(EXCLUDE_JPG_SUPPORT)
 /* Format-dependent operations for JPG support. */
-jas_image_t *jpg_decode(jas_stream_t *in, const char *optstr);
-int jpg_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
-int jpg_validate(jas_stream_t *in);
+JAS_DLLEXPORT jas_image_t *jpg_decode(jas_stream_t *in, const char *optstr);
+JAS_DLLEXPORT int jpg_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
+JAS_DLLEXPORT int jpg_validate(jas_stream_t *in);
 #endif
 
 #if !defined(EXCLUDE_MIF_SUPPORT)
 /* Format-dependent operations for MIF support. */
-jas_image_t *mif_decode(jas_stream_t *in, const char *optstr);
-int mif_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
-int mif_validate(jas_stream_t *in);
+JAS_DLLEXPORT jas_image_t *mif_decode(jas_stream_t *in, const char *optstr);
+JAS_DLLEXPORT int mif_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
+JAS_DLLEXPORT int mif_validate(jas_stream_t *in);
 #endif
 
 #if !defined(EXCLUDE_PNM_SUPPORT)
 /* Format-dependent operations for PNM support. */
-jas_image_t *pnm_decode(jas_stream_t *in, const char *optstr);
-int pnm_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
-int pnm_validate(jas_stream_t *in);
+JAS_DLLEXPORT jas_image_t *pnm_decode(jas_stream_t *in, const char *optstr);
+JAS_DLLEXPORT int pnm_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
+JAS_DLLEXPORT int pnm_validate(jas_stream_t *in);
 #endif
 
 #if !defined(EXCLUDE_RAS_SUPPORT)
 /* Format-dependent operations for Sun Rasterfile support. */
-jas_image_t *ras_decode(jas_stream_t *in, const char *optstr);
-int ras_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
-int ras_validate(jas_stream_t *in);
+JAS_DLLEXPORT jas_image_t *ras_decode(jas_stream_t *in, const char *optstr);
+JAS_DLLEXPORT int ras_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
+JAS_DLLEXPORT int ras_validate(jas_stream_t *in);
 #endif
 
 #if !defined(EXCLUDE_BMP_SUPPORT)
 /* Format-dependent operations for BMP support. */
-jas_image_t *bmp_decode(jas_stream_t *in, const char *optstr);
-int bmp_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
-int bmp_validate(jas_stream_t *in);
+JAS_DLLEXPORT jas_image_t *bmp_decode(jas_stream_t *in, const char *optstr);
+JAS_DLLEXPORT int bmp_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
+JAS_DLLEXPORT int bmp_validate(jas_stream_t *in);
 #endif
 
 #if !defined(EXCLUDE_JP2_SUPPORT)
 /* Format-dependent operations for JP2 support. */
-jas_image_t *jp2_decode(jas_stream_t *in, const char *optstr);
-int jp2_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
-int jp2_validate(jas_stream_t *in);
+JAS_DLLEXPORT jas_image_t *jp2_decode(jas_stream_t *in, const char *optstr);
+JAS_DLLEXPORT int jp2_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
+JAS_DLLEXPORT int jp2_validate(jas_stream_t *in);
 #endif
 
 #if !defined(EXCLUDE_JPC_SUPPORT)
 /* Format-dependent operations for JPEG-2000 code stream support. */
-jas_image_t *jpc_decode(jas_stream_t *in, const char *optstr);
-int jpc_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
-int jpc_validate(jas_stream_t *in);
+JAS_DLLEXPORT jas_image_t *jpc_decode(jas_stream_t *in, const char *optstr);
+JAS_DLLEXPORT int jpc_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
+JAS_DLLEXPORT int jpc_validate(jas_stream_t *in);
 #endif
 
 #if !defined(EXCLUDE_PGX_SUPPORT)
 /* Format-dependent operations for PGX support. */
-jas_image_t *pgx_decode(jas_stream_t *in, const char *optstr);
-int pgx_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
-int pgx_validate(jas_stream_t *in);
+JAS_DLLEXPORT jas_image_t *pgx_decode(jas_stream_t *in, const char *optstr);
+JAS_DLLEXPORT int pgx_encode(jas_image_t *image, jas_stream_t *out, const char *optstr);
+JAS_DLLEXPORT int pgx_validate(jas_stream_t *in);
 #endif
 
 #ifdef __cplusplus
