ref: 6e9617371f7cf3f669a60d9540723a01f1128fc8
parent: 787eee29b87f06390fb3a2f615a525205a84d1f4
author: Daniel Verkamp <[email protected]>
date: Wed Oct 21 13:24:41 EDT 2015
win32: only use dllexport when building DLL 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.
--- a/include/opus_defines.h
+++ b/include/opus_defines.h
@@ -65,7 +65,7 @@
#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