Incompatible with wxGTK
Posted: Mon May 05, 2014 3:15 pm
The md5 of the source codes is
The target sharedlib of the file source/Irrlicht/Makefile builds the shared library exporting many symbols that shall not be exported. wxGTK depends on libpng, and Irrlicht offers libpng's functions. So it will cause wxGTK to use the wrong version inside Irrlicht. What we need to do is to prohibit the libraries inside Irrlicht from exporting their symbols. Below is the patch for the Makefile.
The result is...
Code: Select all
f4f7fa33bd1060eb0dd51dcd66b0f6e3 irrlicht-1.8.1.zip
Code: Select all
--- source/Irrlicht/Makefile.original 2013-12-16 13:28:22.000000000 +0800
+++ source/Irrlicht/Makefile 2014-05-05 23:04:37.000000000 +0800
@@ -62,7 +62,7 @@
###############
#Compiler flags
CXXINCS = -I../../include -Izlib -Ijpeglib -Ilibpng
-CPPFLAGS += $(CXXINCS) -DIRRLICHT_EXPORTS=1
+CPPFLAGS += $(CXXINCS) -DIRRLICHT_EXPORTS=1 -fvisibility=hidden
CXXFLAGS += -Wall -pipe -fno-exceptions -fno-rtti -fstrict-aliasing
ifndef NDEBUG
CXXFLAGS += -g -D_DEBUG
Code: Select all
$ objdump --dynamic-syms --demangle /usr/local/lib/libIrrlicht.so.1.8.1 | grep '\.text\>'
00219fb0 g DF .text 00000047 Base irr::io::createIrrXMLReaderUTF32(char const*)
0005a132 w DF .text 00000008 Base operator new(unsigned int, void*)
00219ff7 g DF .text 00000047 Base irr::io::createIrrXMLReaderUTF32(_IO_FILE*)
00219de6 g DF .text 0000009e Base irr::io::createIrrXMLReader(irr::io::IFileReadCallBack*, bool)
00219f12 g DF .text 0000009e Base irr::io::createIrrXMLReaderUTF16(irr::io::IFileReadCallBack*, bool)
00219e84 g DF .text 00000047 Base irr::io::createIrrXMLReaderUTF16(char const*)
00219ecb g DF .text 00000047 Base irr::io::createIrrXMLReaderUTF16(_IO_FILE*)
0021a03e g DF .text 0000009e Base irr::io::createIrrXMLReaderUTF32(irr::io::IFileReadCallBack*, bool)
00219d58 g DF .text 00000047 Base irr::io::createIrrXMLReader(char const*)
0024529a g DF .text 0000010f Base createDeviceEx
00245225 g DF .text 00000075 Base createDevice
00219d9f g DF .text 00000047 Base irr::io::createIrrXMLReader(_IO_FILE*)