Compiling VirtualBox 1.6.4 OSE on openSUSE 11.0
Posted: 6. Aug 2008, 14:53
When trying to compile VirtualBox 1.6.4 OSE on openSUSE 11.0 I face several problems:
./configure
Checking for environment: Determined build machine: linux.x86, target machine: linux.x86, OK.
Checking for kBuild: found, OK.
Checking for gcc:
** There are known problems with gcc version 4.3 when compiling the recompiler
** stuff. You need to specify a compatibility compiler with version < 4.3. Look
** for a package compat-gcc-34 on Fedora systems or something similar on other
** distributions and call configure with parameter --with-gcc-compat=gcc34.
I was unable to find such a package "compat-gcc-34" package for openSUSE 11.0.
So I compiled gcc-3.4.6 manually and installed it in /opt/ (for easy removal). Then, I try
./configure --with-gcc=/opt/gcc-3.4.6/bin/gcc --with-g++=/opt/gcc-3.4.6/bin/g++ --with-qt-dir=/usr/lib/qt3
which results in:
Checking for environment: Determined build machine: linux.x86, target machine: linux.x86, OK.
Checking for kBuild: found, OK.
Checking for gcc: found version 3.4.6, OK.
Checking for as86: found version 0.16.17, OK.
Checking for bcc: found version 0.16.17, OK.
Checking for iasl: found version 20080213, OK.
Checking for xslt: found, OK.
Checking for pthread: found, OK.
Checking for libxml2: found version 2.6.32, OK.
Checking for libxslt: found version 1.1.23, OK.
Checking for libIDL: found version 0.8.10, OK.
Checking for zlib: found version 1.2.3, OK.
Checking for libpng: found version 1.2.26, OK.
Checking for SDL: found version 1.2.13, OK.
Checking for X libraries: found, OK.
Checking for Xcursor: found, OK.
Checking for Qt3:
Qt3 not found at "/usr/lib/qt3" or Qt3 headers not found
Check the file /home/mocken/Desktop/virtualbox/VirtualBox-1.6.4/configure.log for detailed error information.
and in configure.log I find at the end:
***** Checking Qt3 *****
compiling the following source file:
#include <cstdio>
#include <qglobal.h>
extern "C" int main(void)
{
printf("found version %s", QT_VERSION_STR);
#if QT_VERSION >= 0x030305
printf(", OK.\n");
return 0;
#elif QT_VERSION >= 0x030300
printf("\n ** WARNING: QT < 3.3.5 has known problems!\n");
#else
printf(", expected version 3.3.0 or higher\n");
return 1;
#endif
}
using the following command line:
/opt/gcc-3.4.6/bin/g++ -O -Wall -o .tmp_out .tmp_src.cc -I/usr/lib/qt3/include -L/usr/lib/qt3/lib -lqt-mt -lpthread -L/usr/local/lib
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `__cxa_guard_acquire@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `operator delete(void*)@GLIBCXX_3.4'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `operator delete[](void*)@GLIBCXX_3.4'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `operator new(unsigned int)@GLIBCXX_3.4'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `__cxa_pure_virtual@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `vtable for __cxxabiv1::__class_type_info@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `__cxa_guard_release@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `operator new[](unsigned int)@GLIBCXX_3.4'
collect2: ld returned 1 exit status
Looks like some kind of standard library incompatibility to me, can anyone help?
Guido
./configure
Checking for environment: Determined build machine: linux.x86, target machine: linux.x86, OK.
Checking for kBuild: found, OK.
Checking for gcc:
** There are known problems with gcc version 4.3 when compiling the recompiler
** stuff. You need to specify a compatibility compiler with version < 4.3. Look
** for a package compat-gcc-34 on Fedora systems or something similar on other
** distributions and call configure with parameter --with-gcc-compat=gcc34.
I was unable to find such a package "compat-gcc-34" package for openSUSE 11.0.
So I compiled gcc-3.4.6 manually and installed it in /opt/ (for easy removal). Then, I try
./configure --with-gcc=/opt/gcc-3.4.6/bin/gcc --with-g++=/opt/gcc-3.4.6/bin/g++ --with-qt-dir=/usr/lib/qt3
which results in:
Checking for environment: Determined build machine: linux.x86, target machine: linux.x86, OK.
Checking for kBuild: found, OK.
Checking for gcc: found version 3.4.6, OK.
Checking for as86: found version 0.16.17, OK.
Checking for bcc: found version 0.16.17, OK.
Checking for iasl: found version 20080213, OK.
Checking for xslt: found, OK.
Checking for pthread: found, OK.
Checking for libxml2: found version 2.6.32, OK.
Checking for libxslt: found version 1.1.23, OK.
Checking for libIDL: found version 0.8.10, OK.
Checking for zlib: found version 1.2.3, OK.
Checking for libpng: found version 1.2.26, OK.
Checking for SDL: found version 1.2.13, OK.
Checking for X libraries: found, OK.
Checking for Xcursor: found, OK.
Checking for Qt3:
Qt3 not found at "/usr/lib/qt3" or Qt3 headers not found
Check the file /home/mocken/Desktop/virtualbox/VirtualBox-1.6.4/configure.log for detailed error information.
and in configure.log I find at the end:
***** Checking Qt3 *****
compiling the following source file:
#include <cstdio>
#include <qglobal.h>
extern "C" int main(void)
{
printf("found version %s", QT_VERSION_STR);
#if QT_VERSION >= 0x030305
printf(", OK.\n");
return 0;
#elif QT_VERSION >= 0x030300
printf("\n ** WARNING: QT < 3.3.5 has known problems!\n");
#else
printf(", expected version 3.3.0 or higher\n");
return 1;
#endif
}
using the following command line:
/opt/gcc-3.4.6/bin/g++ -O -Wall -o .tmp_out .tmp_src.cc -I/usr/lib/qt3/include -L/usr/lib/qt3/lib -lqt-mt -lpthread -L/usr/local/lib
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `__cxa_guard_acquire@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `operator delete(void*)@GLIBCXX_3.4'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `operator delete[](void*)@GLIBCXX_3.4'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `operator new(unsigned int)@GLIBCXX_3.4'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `__cxa_pure_virtual@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `vtable for __cxxabiv1::__class_type_info@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `__cxa_guard_release@CXXABI_1.3'
/usr/lib/qt3/lib/libqt-mt.so: undefined reference to `operator new[](unsigned int)@GLIBCXX_3.4'
collect2: ld returned 1 exit status
Looks like some kind of standard library incompatibility to me, can anyone help?
Guido