diff --git a/setup.py b/setup.py
index 88dc54f8d0d1deffd1d0cbe1bb85947b084800e6..6ea79fc20a78a0b66803bf8f7e6d33bcb8cf7ee8 100644
--- a/setup.py
+++ b/setup.py
@@ -172,7 +172,7 @@ LDFLAGS = tuple(EXTRA_LINK_ARGS)
 CFLAGS = tuple(EXTRA_COMPILE_ARGS)
 if "linux" in sys.platform or "darwin" in sys.platform:
   pymodinit_type = 'PyObject*' if PY3 else 'void'
-  pymodinit = '__attribute__((visibility ("default"))) {}'.format(pymodinit_type)
+  pymodinit = 'extern "C" __attribute__((visibility ("default"))) {}'.format(pymodinit_type)
   DEFINE_MACROS += (('PyMODINIT_FUNC', pymodinit),)
 
 # By default, Python3 distutils enforces compatibility of