Compiled libgphoto2 and gphoto2, but gphoto2 shows older libgphoto2 - libgphoto2

I followed the basic directions (This reference gives how to deal with missing libraries: https://sourceforge.net/p/gphoto/mailman/message/33367636/) to compile the latest libgphoto2 and gphoto2 on a Raspberry Pi, but when I try seeing what is installed (gphoto2 -v), I get this:
This version of gphoto2 is using the following software versions and options:
gphoto2 2.5.23 gcc, popt(m), no exif, no cdk, no aa, no jpeg, no readline
libgphoto2 2.5.12 all camlibs, gcc, ltdl, EXIF
libgphoto2_port 0.12.0 gcc, ltdl, USB, serial without locking
The ./configure and make commands work OK. When I do 'sudo make install', the script goes along (with some re-link warnings), but no errors.
The tail end of the 'sudo make install' is below. What might be the cause of this? Shouldn't I see 2.5.25 for libgphoto2?
make[3]: Nothing to be done for 'install-exec-am'.
/bin/mkdir -p '/usr/local/lib/udev'
/usr/bin/install -c check-ptp-camera '/usr/local/lib/udev'
/bin/mkdir -p '/usr/local/lib/libgphoto2'
/bin/bash ../../libtool --mode=install /usr/bin/install -c print-camera-list '/usr/local/lib/libgphoto2'
libtool: install: /usr/bin/install -c .libs/print-camera-list /usr/local/lib/libgphoto2/print-camera-list
make[3]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging/generic'
make[2]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging/generic'
Making install in rpm
make[2]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging/rpm'
make[3]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging/rpm'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging/rpm'
make[2]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging/rpm'
make[2]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging'
make[3]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging'
make[2]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging'
make[1]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/packaging'
Making install in doc
make[1]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/doc'
Making install in api
make[2]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/doc/api'
Dummy target all-local.
make[3]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/doc/api'
make[3]: Nothing to be done for 'install-exec-am'.
Dummy target install-data-local
Re-run configure with adequate parameters and run make again to build docs.
make[3]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/doc/api'
make[2]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/doc/api'
make[2]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/doc'
make[3]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/doc'
make[3]: Nothing to be done for 'install-exec-am'.
/bin/mkdir -p '/usr/local/share/man/man3'
/usr/bin/install -c -m 644 libgphoto2.3 libgphoto2_port.3 '/usr/local/share/man/man3'
make[3]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/doc'
make[2]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/doc'
make[1]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/doc'
Making install in gphoto-m4
make[1]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/gphoto-m4'
make[2]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25/gphoto-m4'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/gphoto-m4'
make[1]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25/gphoto-m4'
make[1]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25'
make[2]: Entering directory '/home/pi/Desktop/libgphoto2-2.5.25'
/bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c gphoto2-config '/usr/local/bin'
/bin/mkdir -p '/usr/local/share/doc/libgphoto2'
/usr/bin/install -c -m 644 AUTHORS COPYING NEWS ABOUT-NLS ChangeLog README.md RELEASE-HOWTO.md README.packaging '/usr/local/share/doc/libgphoto2'
/bin/mkdir -p '/usr/local/include'
/bin/mkdir -p '/usr/local/include/gphoto2'
/usr/bin/install -c -m 644 gphoto2/gphoto2.h gphoto2/gphoto2-abilities-list.h gphoto2/gphoto2-camera.h gphoto2/gphoto2-context.h gphoto2/gphoto2-file.h gphoto2/gphoto2-filesys.h gphoto2/gphoto2-library.h gphoto2/gphoto2-list.h gphoto2/gphoto2-result.h gphoto2/gphoto2-setting.h gphoto2/gphoto2-version.h gphoto2/gphoto2-widget.h '/usr/local/include/gphoto2'
/bin/mkdir -p '/usr/local/lib/pkgconfig'
/usr/bin/install -c -m 644 libgphoto2.pc '/usr/local/lib/pkgconfig'
make[2]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25'
make[1]: Leaving directory '/home/pi/Desktop/libgphoto2-2.5.25'

I had the same problem on a fresh Pi OS.
The solution comes in two steps.
set the PKG_CONFIG_PATH system variable
export PKG_CONFIG_PATH=${libdir}/pkgconfig
add pi specific --libdir option to ./configure
./configure --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabih

Related

src/teamcity/teamcity_boost.cpp:22:47: fatal error: boost/test/unit_test_suite_impl.hpp: No such file or directory

I am trying to install ignite odbc driver, I have installed ignite following these steps
https://apacheignite.readme.io/docs/getting-started#installation
# Unpack the source package
$ unzip -q apache-ignite-{version}-src.zip
$ cd apache-ignite-{version}-src
# Build In-Memory Data Fabric release (without LGPL dependencies)
$ mvn clean package -DskipTests
# Build In-Memory Data Fabric release (with LGPL dependencies)
$ mvn clean package -DskipTests -Prelease,lgpl
# Build In-Memory Hadoop Accelerator release
# (optionally specify version of hadoop to use)
$ mvn clean package -DskipTests -Dignite.edition=hadoop [-Dhadoop.version=X.X.X]
After that, added IGNITE_HOME path pointing to ignite directory. Also installed ODBC driver manager http://www.unixodbc.org/
After that, followed these steps,
http://apacheignite.gridgain.org/docs/odbc-driver#section-building-on-linux
But I get this error at "make"
In file included from src/statement.cpp:29:0:
./include/ignite/odbc/statement.h:614:18: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
std::auto_ptr<query::Query> currentQuery;
^
In file included from /usr/include/c++/5/bits/locale_conv.h:41:0,
from /usr/include/c++/5/locale:43,
from /usr/include/c++/5/iomanip:43,
from ../common/include/ignite/guid.h:27,
from ./include/ignite/odbc/app/application_data_buffer.h:25,
from ./include/ignite/odbc/diagnostic/diagnostic_record_storage.h:27,
from ./include/ignite/odbc/diagnostic/diagnosable.h:21,
from ./include/ignite/odbc/query/query.h:25,
from ./include/ignite/odbc/query/data_query.h:21,
from src/statement.cpp:19:
/usr/include/c++/5/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
CXX src/type_traits.lo
CXX src/utility.lo
CXXLD libignite-odbc.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc'
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc'
Making all in odbc-test
make[2]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Making all in include
make[3]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test/include'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test/include'
make[3]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
CXX src/teamcity/teamcity_boost.o
src/teamcity/teamcity_boost.cpp:22:47: fatal error: boost/test/unit_test_suite_impl.hpp: No such file or directory
compilation terminated.
Makefile:625: recipe for target 'src/teamcity/teamcity_boost.o' failed
make[3]: *** [src/teamcity/teamcity_boost.o] Error 1
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:661: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:426: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp'
Makefile:358: recipe for target 'all' failed
make: *** [all] Error 2
I am using Ubuntu 16.04 and apache ignite 1.8.0 latest version with Java 8.
Update:
sudo apt-get install libboost-all-dev
libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
./configure --enable-odbc --disable-node --disable-core
make
src/row_test.cpp:192:18: warning: unused variable ‘rowNum’ [-Wunused-variable]
const size_t rowNum = 2;
^
CXX src/utility_test.o
CXX src/queries_test.o
In file included from ../core/include/ignite/cache/cache.h:40:0,
from ../core/include/ignite/ignite.h:26,
from src/queries_test.cpp:35:
../core/include/ignite/impl/cache/cache_impl.h:27:48: fatal error: ignite/impl/interop/interop_target.h: No such file or directory
compilation terminated.
Makefile:625: recipe for target 'src/queries_test.o' failed
make[3]: *** [src/queries_test.o] Error 1
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:661: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:426: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp'
Makefile:358: recipe for target 'all' failed
make: *** [all] Error 2
Update 2: Running with disabling tets worked
libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
./configure --enable-odbc --disable-node --disable-core --disable-tests
make
make install
Though the installation is complete, still pdo connection throws exception
odbcinst -j
unixODBC 2.3.4
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /home/me/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
cat cat /usr/local/etc/odbcinst.ini
[Apache Ignite]
Description=Apache Ignite
Driver=/usr/local/lib/libignite-odbc.so
Setup=/usr/local/lib/libignite-odbc.so
DriverODBCVer=03.00
FileUsage=0
UsageCount=1
cat /usr/local/etc/odbc.ini - empty file - Do i need to add anything to it ? - Tried adding above config but same exception.
cat /home/me/.odbc.ini
[Apache Ignite]
Description=Apache Ignite
Driver=/usr/local/lib/libignite-odbc.so
DriverODBCVer=03.00
FileUsage=0
UsageCount=1
$ignite = $dbh = new \PDO('odbc:Apache Ignite');
$ignite->prepare('select * from Person');
[PDOException]
SQLSTATE[08001] SQLConnect: 0 [unixODBC]Failed to establish connection with the host.
As you are building ODBC from sources distribution, you should either install boost libraries or disable tests, as they use boost.
To install boost run:
sudo apt-get install libboost-all-dev
To disable tests do the following in the modules/platforms/cpp:
libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
./configure --enable-odbc --disable-node --disable-core --disable-tests
make

Including wrong Qt version headers

I am trying to install QT Creator from source on Centos 6. I have installed (what I think are) the Qt5 libraries onto my system using yum. When I check which rpm's are installed I see
[qt-creator-2.8.1-src]# rpm -qa | grep qt
qt5-qtbase-x11-5.1.1-3.el6.x86_64
qt-4.6.2-26.el6_4.x86_64
qt-sqlite-4.6.2-26.el6_4.x86_64
qt-x11-4.6.2-26.el6_4.x86_64
qt5-qtbase-5.1.1-3.el6.x86_64
ibus-qt-1.3.0-2.el6.x86_64
qt3-3.3.8b-30.el6.x86_64
qt5-qtbase-devel-5.1.1-3.el6.x86_64
qt-devel-4.6.2-26.el6_4.x86_64
qt3-devel-3.3.8b-30.el6.x86_64
So qt5 seems to be installed, but so is qt4 and qt3 (perhaps required by some other apps, but this is a pretty plain system). So now I've downloaded the QT Creator source, and am trying to compile. I gave the full path the qt5 qmake (/usr/lib64/qt5/bin/qmake qtcreator.pro) and that worked. But now when I issue the command make I see:
[qt-creator-2.8.1-src]# make
cd src/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake /usr/src/qtcreator/qt-creator-2.8.1-src/src/src.pro -o Makefile ) && make -f Makefile
make[1]: Entering directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src'
cd libs && make -f Makefile
make[2]: Entering directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src/libs'
cd aggregation && make -f Makefile
make[3]: Entering directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src/libs/aggregation'
g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fno-strict-aliasing -fPIC -DAGGREGATION_LIBRARY -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREAD_SUPPORT -I/usr/lib64/qt-3.3/mkspecs/default -I. -I/src -I\ -I/usr/lib64/qt-3.3/include -o aggregate.o aggregate.cpp
In file included from aggregate.h:33,
from aggregate.cpp:30:
aggregation_global.h:33:21: error: qglobal.h: No such file or directory
In file included from aggregate.cpp:30:
aggregate.h:35:19: error: QObject: No such file or directory
aggregate.h:36:17: error: QList: No such file or directory
aggregate.h:37:17: error: QHash: No such file or directory
aggregate.h:38:26: error: QReadWriteLock: No such file or directory
aggregate.h:39:23: error: QReadLocker: No such file or directory
aggregate.cpp:32:24: error: QWriteLocker: No such file or directory
aggregate.cpp:33:18: error: QDebug: No such file or directory
In file included from aggregate.cpp:30:
aggregate.h:43: error: expected initializer before ‘:’ token
aggregate.cpp:277: error: expected ‘}’ at end of input
make[3]: *** [aggregate.o] Error 1
make[3]: Leaving directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src/libs/aggregation'
make[2]: *** [sub-aggregation] Error 2
make[2]: Leaving directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src/libs'
make[1]: *** [sub-libs] Error 2
make[1]: Leaving directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src'
make: *** [sub-src-make_first-ordered] Error 2
so it looks like make is including the qt 3.3 headers I/usr/lib64/qt-3.3/mkspecs/default). How do I tell make or qmake to use the Qt5 headers/libraries?
I remove the qt3-devel package as suggested below, and now my error changes to:
cd src/ && ( test -e Makefile || /opt/Qt/5.1.1/gcc_64/bin/qmake /usr/src/qtcreator/qt-creator-2.8.1-src/src/src.pro -o Makefile ) && make -f Makefile
make[1]: Entering directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src'
make[1]: *** No rule to make target `/usr/lib64/qt-3.3/mkspecs/default/qmake.conf', needed by `Makefile'. Stop.
make[1]: Leaving directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src'
make: *** [sub-src-make_first-ordered] Error 2
as you can see make is still referencing the qt3 stuff.
The solution for those encountering the same:
Remove qt3-devel
Install qt5-* (otherwise the make process will complain about missing items). You can probably be more selective but after 10 time install individual packages based on make complains, I just put them all in.
run qmake giving the full path to the qt5 version of qmake
run 'qmake -r' not 'qmake qtcreator.pro'

Error in installing SimpleDB::Class

I try to install SimpleDB::Class from cpan as sudo cpan SimpleDB::Class. it needs a dependency Memcached::libmemcached. so i try to install it, but it have the following errors.
CCLD clients/memstat
CC tests/atomsmasher.o
CCLD tests/atomsmasher
CXX tests/tests_hashplus-hash_plus.o
./config/depcomp: line 611: exec: g++: not found
make[2]: *** [tests/tests_hashplus-hash_plus.o] Error 127
make[2]: Leaving directory `/home/vanitha/.cpan/build/Memcached-libmemcached-0.4406- Oq4Z_m/src/libmemcached'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/vanitha/.cpan/build/Memcached-libmemcached-0.4406- Oq4Z_m/src/libmemcached'
make: *** [install] Error 2
Unable to build libmemcached: Error running cd src/libmemcached && make install
Aborted.
No 'Makefile' created TIMB/Memcached-libmemcached-0.4406.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
could not read metadata file. Falling back to other methods to determine prerequisites
exec: g++: not found - this is the error
Try this first of all: sudo apt-get install g++

Cygwin 'make' command

I'm trying to compile a library using a Unix shell. I'm running Cygwin on Windows. The install instructions for the library state:
cd' to the directory containing the package's source code and type
./configure' to configure the package for your system. If you're
using csh' on an old version of System V, you might need to type
sh ./configure' instead to prevent csh' from trying to execute
configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
Type `make' to compile the package.
<... MORE INSTRUCTIONS FOLLOW ...>
So, I've placed the folder containing the library source into my Cygwin directory, cd'ed to the folder, and run ./configure. This all appears to work fine, but the 'make' command produces the following output:
$ make
make all-recursive
make[1]: Entering directory `/liblo-0.26'
Making all in src
make[2]: Entering directory `/liblo-0.26/src'
Making all in .
make[3]: Entering directory `/liblo-0.26/src'
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -
Wall -I.. -g -O2 -MT liblo_la-address.lo -MD -MP -MF .deps/liblo_la-address.Tpo
-c -o liblo_la-address.lo `test -f 'address.c' || echo './'`address.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I.. -g -O2 -MT liblo_la-a
ddress.lo -MD -MP -MF .deps/liblo_la-address.Tpo -c address.c -DDLL_EXPORT -DPI
C -o .libs/liblo_la-address.o
In file included from lo_types_internal.h:33,
from address.c:37:
../lo/lo_osc_types.h:32:20: stdint.h: No such file or directory
In file included from address.c:37:
lo_types_internal.h:89: field `addr' has incomplete type
lo_types_internal.h:98: confused by earlier errors, bailing out
make[3]: *** [liblo_la-address.lo] Error 1
make[3]: Leaving directory `/liblo-0.26/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/liblo-0.26/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/liblo-0.26'
make: *** [all] Error 2
What am I doing wrong? Happy to provide more info - but I'm new to Unix shell (as you can probably tell...)
The error is that the header file stdint.h is not found.
stdint.h is a new header, standardized in C99 (The version published in 1999 of the C standard.) It could be that your UNIX does not have it. But cygwin should be recent and have it.
Does your cygwin installation have the C library header files installed?

build failure when trying to cross-compile Qt 4.8.3 on Debian, for win32

I am trying to build a pristine Qt 4.8.3 tarball, and I configured the build with this command:
./configure -opensource -xplatform win32-g++ -device-option CROSS_COMPILE=i686-w64-mingw32-
Following is a result of (re)running make:
$ make
cd src/tools/bootstrap/ && make -f Makefile
make[1]: Entering directory `/home/wena/src/qt-4.8.3/src/tools/bootstrap'
make[1]: Nothing to be done for `first'.
make[1]: Leaving directory `/home/wena/src/qt-4.8.3/src/tools/bootstrap'
cd src/tools/moc/ && make -f Makefile
make[1]: Entering directory `/home/wena/src/qt-4.8.3/src/tools/moc'
make[1]: Nothing to be done for `first'.
make[1]: Leaving directory `/home/wena/src/qt-4.8.3/src/tools/moc'
cd src/tools/rcc/ && make -f Makefile
make[1]: Entering directory `/home/wena/src/qt-4.8.3/src/tools/rcc'
make[1]: Nothing to be done for `first'.
make[1]: Leaving directory `/home/wena/src/qt-4.8.3/src/tools/rcc'
cd src/tools/uic/ && make -f Makefile
make[1]: Entering directory `/home/wena/src/qt-4.8.3/src/tools/uic'
make[1]: Nothing to be done for `first'.
make[1]: Leaving directory `/home/wena/src/qt-4.8.3/src/tools/uic'
cd src/winmain/ && make -f Makefile
make[1]: Entering directory `/home/wena/src/qt-4.8.3/src/winmain'
make -f Makefile.Debug all
make[2]: Entering directory `/home/wena/src/qt-4.8.3/src/winmain'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/wena/src/qt-4.8.3/src/winmain'
make -f Makefile.Release all
make[2]: Entering directory `/home/wena/src/qt-4.8.3/src/winmain'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/wena/src/qt-4.8.3/src/winmain'
make[1]: Leaving directory `/home/wena/src/qt-4.8.3/src/winmain'
cd src/corelib/ && make -f Makefile
make[1]: Entering directory `/home/wena/src/qt-4.8.3/src/corelib'
make -f Makefile.Debug all
make[2]: Entering directory `/home/wena/src/qt-4.8.3/src/corelib'
i686-w64-mingw32-g++ -shared -mthreads -Wl,--out-implib,/home/wena/src/qt-4.8.3/lib/libQtCored4.a -o ../../lib/QtCored4.dll object_script.QtCored.Debug -L'/home/wena/src/qt-4.8.3/lib' -L'/home/wena/src/qt-4.8.3/lib' -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 .obj/debug-shared/QtCored_resource_res.o
Creating library file: /home/wena/src/qt-4.8.3/lib/libQtCored4.a
./.obj/debug-shared/qtextcodec.o: In function `setup':
/home/wena/src/qt-4.8.3/src/corelib/codecs/qtextcodec.cpp:771: undefined reference to `QGb18030Codec::QGb18030Codec()'
/home/wena/src/qt-4.8.3/src/corelib/codecs/qtextcodec.cpp:772: undefined reference to `QGbkCodec::QGbkCodec()'
/home/wena/src/qt-4.8.3/src/corelib/codecs/qtextcodec.cpp:773: undefined reference to `QGb2312Codec::QGb2312Codec()'
/home/wena/src/qt-4.8.3/src/corelib/codecs/qtextcodec.cpp:774: undefined reference to `QEucJpCodec::QEucJpCodec()'
/home/wena/src/qt-4.8.3/src/corelib/codecs/qtextcodec.cpp:775: undefined reference to `QJisCodec::QJisCodec()'
/home/wena/src/qt-4.8.3/src/corelib/codecs/qtextcodec.cpp:776: undefined reference to `QSjisCodec::QSjisCodec()'
./.obj/debug-shared/qtextcodec.o: In function `QEucKrCodec':
/home/wena/src/qt-4.8.3/src/corelib/codecs/../../plugins/codecs/kr/qeuckrcodec.h:77: undefined reference to `vtable for QEucKrCodec'
./.obj/debug-shared/qtextcodec.o: In function `QCP949Codec':
/home/wena/src/qt-4.8.3/src/corelib/codecs/../../plugins/codecs/kr/qeuckrcodec.h:91: undefined reference to `vtable for QCP949Codec'
./.obj/debug-shared/qtextcodec.o: In function `QBig5Codec':
/home/wena/src/qt-4.8.3/src/corelib/codecs/../../plugins/codecs/tw/qbig5codec.h:56: undefined reference to `vtable for QBig5Codec'
./.obj/debug-shared/qtextcodec.o: In function `QBig5hkscsCodec':
/home/wena/src/qt-4.8.3/src/corelib/codecs/../../plugins/codecs/tw/qbig5codec.h:70: undefined reference to `vtable for QBig5hkscsCodec'
collect2: ld returned 1 exit status
make[2]: *** [../../lib/QtCored4.dll] Error 1
make[2]: Leaving directory `/home/wena/src/qt-4.8.3/src/corelib'
make[1]: *** [debug-all] Error 2
make[1]: Leaving directory `/home/wena/src/qt-4.8.3/src/corelib'
make: *** [sub-corelib-make_default-ordered] Error 2
I am building on latest Debian 7 (Wheezy).
I had the same error when cc-ing 4.7 with -no-iconv.
Came to this hack to src/corelib/codecs/codecs.pri:
win32 {
!contains(QT_CONFIG,iconv) {
# no iconv, so we put all plugins in the library
HEADERS += \
../plugins/codecs/cn/qgb18030codec.h \
../plugins/codecs/jp/qeucjpcodec.h \
../plugins/codecs/jp/qjiscodec.h \
../plugins/codecs/jp/qsjiscodec.h \
../plugins/codecs/kr/qeuckrcodec.h \
../plugins/codecs/tw/qbig5codec.h \
../plugins/codecs/jp/qfontjpcodec.h
SOURCES += \
../plugins/codecs/cn/qgb18030codec.cpp \
../plugins/codecs/jp/qjpunicode.cpp \
../plugins/codecs/jp/qeucjpcodec.cpp \
../plugins/codecs/jp/qjiscodec.cpp \
../plugins/codecs/jp/qsjiscodec.cpp \
../plugins/codecs/kr/qeuckrcodec.cpp \
../plugins/codecs/tw/qbig5codec.cpp \
../plugins/codecs/jp/qfontjpcodec.cpp
}
}
There were other errors and hacks, but it looks like they're gone in 4.8.3.
You are missing the libiconv library used by the text codec plugins. Someone with the same problem here.
To avoid this error:
In file included from main.cpp:42:0: dialog.h:65:5: error: ‘QSharedMemory’ does not name a type
Looks like mxe uses ./configure -nomake examples ... (another option is what vlc uses, which is to just do make sub-src instead of global make--though you can't use make install with this method since it still tries to build the examples). Seems like a bug in qt to me...or maybe using the locally built qmake would help, didn't try that...
See also How do I configure Qt for cross-compilation from Linux to Windows target?

Resources