[opus] [PATCH] win32: only use dllexport when building DLL
Daniel Verkamp
daniel at drv.nu
Wed Oct 21 18:38:54 PDT 2015
If building a static library, marking symbols as dllexport causes them
to be exported from the final executable. For example, run
objdump -x opus_demo.exe on a --disabled-shared build and look for the
export table; there should not be one in a normal Win32 .exe file, but
when linking static libopus, the exe exports all of the opus_* public
functions.
Use the libtool-defined DLL_EXPORT flag to determine whether we are
building a DLL and only specify __declspec(dllexport) in that case.
---
include/opus_defines.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/opus_defines.h b/include/opus_defines.h
index 10ff838..11b172d 100644
--- a/include/opus_defines.h
+++ b/include/opus_defines.h
@@ -65,7 +65,7 @@ extern "C" {
#ifndef OPUS_EXPORT
# if defined(WIN32)
-# ifdef OPUS_BUILD
+# if defined(OPUS_BUILD) && defined(DLL_EXPORT)
# define OPUS_EXPORT __declspec(dllexport)
# else
# define OPUS_EXPORT
--
2.1.4
More information about the opus
mailing list