Peter Geoghegan
2011-01-19 16:50:32 UTC
Hi,
I am a developer on the PgAdmin project, a popular open source tool
for PostgreSQL administration and development. I have taken
responsibility for making our code build against both wxWidgets 2.8
and 2.9.
Our code is dependent on the Wxwidget's OGL module for things like the
graphical query builder and graphical explain visualisations. The fact
that OGL has been taken out of Wx's contrib for 2.9, and is only
available on wx-code presents us with a predicament.
I have everything compiling correctly (from the ogl.tag.gz package
available from sourceforge), but I still get this weird link error:
/usr/bin/ld: ogl_dll_composit.o: relocation R_X86_64_32 against
`wxDivisionControlPoint::ms_classInfo' can not be used when making a
shared object; recompile with -fPIC ogl_dll_composit.o: could not read
symbols: Bad value collect2: ld returned 1 exit status
Could you please help with this problem? I have built wxWidgets on
Linux/GTK in this way:
make clean
./configure --with-gtk --enable-gtk2 --enable-unicode
--enable-mimetype=no --disable-shared --enable-debug
make all
make install
make clean
./configure --with-gtk --enable-gtk2 --enable-unicode
--enable-mimetype=no --disable-shared --disable-debug
make all
make install
make clean
./configure --with-gtk --enable-gtk2 --enable-unicode
--enable-mimetype=no --enable-shared --enable-debug
make all
make install
make clean
./configure --with-gtk --enable-gtk2 --enable-unicode
--enable-mimetype=no --enable-shared --disable-debug
make all
make install
cd ./utils/hhp2cached
make all
make install
cd ../wxrc
make all
make install
I think this might be a bug with the makefile though. I think it was
generated with quite an old version of bakefile. I'm working off of
the ogl.tar.gz file that is available from sourceforge, and linked to
here:
http://wxcode.sourceforge.net/showcomp.php?name=ogl
I tried to run bakefile myself, but the shipped .bkl has a dependency
I cannot satisfy for "presets/wxcode.bkl". Please advise me on this
matter. Here is the bakefile in full:
<?xml version="1.0" ?>
<!-- RCS-ID: $Id: ogl.bkl,v 1.1 2007/03/28 15:15:44 frm Exp $ -->
<makefile>
<include file="presets/wxcode.bkl"/>
<!-- ================================================================= -->
<!-- Settings for this component -->
<!-- ================================================================= -->
<set-comp-name>ogl</set-comp-name>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- Library settings -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<lib id="ogl_lib" template="wxcode-lib" cond="WX_SHARED=='0'">
</lib>
<dll id="ogl_dll" template="wxcode-dll" cond="WX_SHARED=='1'">
<wx-lib>core</wx-lib>
<wx-lib>base</wx-lib> <!-- base must be last wx-lib -->
</dll>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- This makes the MSVC6 project files much nicer... -->
<set var="MSVC6PRJ_MERGED_TARGETS">
ogl=ogl_lib+ogl_dll
</set>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- Sample(s) settings -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<wxcode-sample id="ogl">
<dir>samples/ogledit</dir>
<has-win32-res/>
<library>ogl_lib</library>
<wx-lib>core</wx-lib>
<wx-lib>base</wx-lib> <!-- base must be last wx-lib -->
</wxcode-sample>
<wxcode-sample id="ogl2">
<dir>samples/studio</dir>
<has-win32-res/>
<library>ogl_lib</library>
<wx-lib>core</wx-lib>
<wx-lib>base</wx-lib> <!-- base must be last wx-lib -->
</wxcode-sample>
</makefile>
Thanks,
Peter Geoghegan
I am a developer on the PgAdmin project, a popular open source tool
for PostgreSQL administration and development. I have taken
responsibility for making our code build against both wxWidgets 2.8
and 2.9.
Our code is dependent on the Wxwidget's OGL module for things like the
graphical query builder and graphical explain visualisations. The fact
that OGL has been taken out of Wx's contrib for 2.9, and is only
available on wx-code presents us with a predicament.
I have everything compiling correctly (from the ogl.tag.gz package
available from sourceforge), but I still get this weird link error:
/usr/bin/ld: ogl_dll_composit.o: relocation R_X86_64_32 against
`wxDivisionControlPoint::ms_classInfo' can not be used when making a
shared object; recompile with -fPIC ogl_dll_composit.o: could not read
symbols: Bad value collect2: ld returned 1 exit status
Could you please help with this problem? I have built wxWidgets on
Linux/GTK in this way:
make clean
./configure --with-gtk --enable-gtk2 --enable-unicode
--enable-mimetype=no --disable-shared --enable-debug
make all
make install
make clean
./configure --with-gtk --enable-gtk2 --enable-unicode
--enable-mimetype=no --disable-shared --disable-debug
make all
make install
make clean
./configure --with-gtk --enable-gtk2 --enable-unicode
--enable-mimetype=no --enable-shared --enable-debug
make all
make install
make clean
./configure --with-gtk --enable-gtk2 --enable-unicode
--enable-mimetype=no --enable-shared --disable-debug
make all
make install
cd ./utils/hhp2cached
make all
make install
cd ../wxrc
make all
make install
I think this might be a bug with the makefile though. I think it was
generated with quite an old version of bakefile. I'm working off of
the ogl.tar.gz file that is available from sourceforge, and linked to
here:
http://wxcode.sourceforge.net/showcomp.php?name=ogl
I tried to run bakefile myself, but the shipped .bkl has a dependency
I cannot satisfy for "presets/wxcode.bkl". Please advise me on this
matter. Here is the bakefile in full:
<?xml version="1.0" ?>
<!-- RCS-ID: $Id: ogl.bkl,v 1.1 2007/03/28 15:15:44 frm Exp $ -->
<makefile>
<include file="presets/wxcode.bkl"/>
<!-- ================================================================= -->
<!-- Settings for this component -->
<!-- ================================================================= -->
<set-comp-name>ogl</set-comp-name>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- Library settings -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<lib id="ogl_lib" template="wxcode-lib" cond="WX_SHARED=='0'">
</lib>
<dll id="ogl_dll" template="wxcode-dll" cond="WX_SHARED=='1'">
<wx-lib>core</wx-lib>
<wx-lib>base</wx-lib> <!-- base must be last wx-lib -->
</dll>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- This makes the MSVC6 project files much nicer... -->
<set var="MSVC6PRJ_MERGED_TARGETS">
ogl=ogl_lib+ogl_dll
</set>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- Sample(s) settings -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<wxcode-sample id="ogl">
<dir>samples/ogledit</dir>
<has-win32-res/>
<library>ogl_lib</library>
<wx-lib>core</wx-lib>
<wx-lib>base</wx-lib> <!-- base must be last wx-lib -->
</wxcode-sample>
<wxcode-sample id="ogl2">
<dir>samples/studio</dir>
<has-win32-res/>
<library>ogl_lib</library>
<wx-lib>core</wx-lib>
<wx-lib>base</wx-lib> <!-- base must be last wx-lib -->
</wxcode-sample>
</makefile>
Thanks,
Peter Geoghegan