I'm having a problem building a library. In the Makefile I tell g++ that I need tclstub8.6 by putting -ltclstub8.6, and g++ takes it into account (sorry for these messages in French):
make: AVERTISSEMENT : le fichier « ../Linux-PORT/i586-GCC4/Makefile » a une date de modification 609 s dans le futur
*** Compile c [gcc] libtestGuiMnt_info.Linux-PORT.i586-GCC4.c
*** Compile C++ [g++] mntdisplay.cc
*** Compile C++ [g++] mntogl.cc
mntogl.cc: In member function 'virtual int MNTOgl::Display() const':
mntogl.cc:228:12: warning: unused variable 'ErrorCheckValue' [-Wunused-variable]
*** Compile C++ [g++] mntdisplaylist.cc
*** Compile C++ [g++] mntmanager.cc
*** Compile C++ [g++] mntdisplay_wrap.cc
*** Link (g++) librairie partagée /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1 -Wl,-Bdynamic -L/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib -Wl,-rpath,/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib -lapcomutil -lapmntcom -lapmntdata -lapmntnoyau -lapcomenvEtude -lapcomenv -ltclstub8.6 -lGLEW -lGLU -lGL -lglut
make: AVERTISSEMENT : décalage d'horloge détecté. La construction peut être incomplète.
But when I call a tcl function, a segfault occurs.
In fact if I check the library I just built with ldd -r command, it shows that every external library is included, except tclstub8.6.
Below is the output messages of ldd -r command. Note that libtclstub8.6 does not appear..
And the list ends with all undefined symbols of libtclstub8.6.
ldd -r /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1
linux-gate.so.1 (0xb777e000)
libapcomutil.2 => /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libapcomutil.2 (0xb7743000)
libapmntcom.1 => /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libapmntcom.1 (0xb773f000)
libapmntdata.3 => /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libapmntdata.3 (0xb770f000)
libapmntnoyau.4 => /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libapmntnoyau.4 (0xb76e9000)
libapcomenvEtude.1 => /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libapcomenvEtude.1 (0xb76cc000)
libapcomenv.1 => /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libapcomenv.1 (0xb76b8000)
libGLEW.so.1.9 => /usr/lib/libGLEW.so.1.9 (0xb762e000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb75a6000)
libGL.so.1 => /usr/lib/libGL.so.1 (0xb7546000)
libglut.so.3 => /usr/lib/libglut.so.3 (0xb750a000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb741e000)
libm.so.6 => /lib/libm.so.6 (0xb73dc000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb73be000)
libc.so.6 => /lib/libc.so.6 (0xb7244000)
libapcomfichier.3 => /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libapcomfichier.3 (0xb7235000)
libapcomitineraire.3 => /apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libapcomitineraire.3 (0xb7190000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7036000)
libz.so.1 => /lib/libz.so.1 (0xb701f000)
libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0xb6f22000)
libglapi.so.0 => /usr/lib/libglapi.so.0 (0xb6f0c000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb6ef9000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb6ef5000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6eef000)
libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0xb6eeb000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb6db1000)
libxcb-glx.so.0 => /usr/lib/libxcb-glx.so.0 (0xb6d98000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6d75000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb6d6f000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb6d61000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb6d45000)
libdl.so.2 => /lib/libdl.so.2 (0xb6d40000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xb6d30000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6d25000)
/lib/ld-linux.so.2 (0xb777f000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0xb6cfb000)
libquadmath.so.0 => /usr/lib/libquadmath.so.0 (0xb6c82000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb6c7e000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6c73000)
undefined symbol: Tcl_DeleteCommandFromToken (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_NewStringObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_GetCommandInfo (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_SetObjResult (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_GetLongFromObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_InitHashTable (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_CreateObjCommand (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_NewBooleanObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_SetResult (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_GetStringResult (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_SetVar (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_VarEval (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_GetVar (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_AppendResult (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_AppendElement (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_ObjSetVar2 (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_ResetResult (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_SetErrorCode (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_PkgProvide (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: _ZN10MNTManager10DisplayAllEv (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_GetStringFromObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_NewDoubleObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_GetBooleanFromObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_GetObjResult (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: TclFreeObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_GetDoubleFromObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_DuplicateObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_DeleteHashEntry (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
undefined symbol: Tcl_NewIntObj (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
Could someone help me with this issue?
Thank you very much!
I found it.
In fact everything was because of this line:
undefined symbol: _ZN10MNTManager10DisplayAllEv (/apollo/Developpement/Build-GCC4/Obj/Linux-PORT/i586-GCC4/lib/libtestGuiMnt.1)
There is an undefined symbol of MY library. I defined it and problem solved!
Please see my original post:
segfault using SWIG converted code for tcl
The confusion was, my program crashed in the middle of tcl wrapper functions (where my undefined symbol was not involved at all). I don't really know why but that's it..
Hope it will help others!
Related
with the usage:
ExternalProject_Add(tbb
PREFIX ${CMAKE_SOURCE_DIR}/deps
DOWNLOAD_NO_PROGRESS 1
DOWNLOAD_NAME v2021.4.0
# TODO: add wb cdn link
URL https://codeload.github.com/oneapi-src/oneTBB/tar.gz/refs/tags/v2021.4.0
URL_HASH SHA1=2641f9a1ead4621a8660ee07a1664627fa0eb477
BUILD_IN_SOURCE 1
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
CMAKE_COMMAND ${CMAKE_COMMAND}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DBUILD_SHARED_LIBS=OFF
-DTBB_TEST=OFF
-DTBB_EXAMPLES=OFF
-DTBB_BENCH=OFF
#CONFIGURE_COMMAND ""
BUILD_COMMAND make extra_inc=big_iron.inc ${ENABLE_STD_LIB}
INSTALL_COMMAND bash -c "/bin/cp -f */libtbb.${TBB_LIB_SUFFIX}* ${CMAKE_SOURCE_DIR}/deps/lib/"
BUILD_BYPRODUCTS ${CMAKE_SOURCE_DIR}/deps/lib/libtbb.${TBB_LIB_SUFFIX}
)
lead to
/home/runner/work/deps/src/tbb/include/tbb/../oneapi/tbb/task_group.h:271: error: undefined reference to 'tbb::detail::r1::initialize(tbb::detail::d1::task_group_context&)'
/home/runner/work/deps/src/tbb/include/tbb/../oneapi/tbb/detail/_small_object_pool.h:61: error: undefined reference to 'tbb::detail::r1::allocate(tbb::detail::d1::small_object_pool*&, unsigned long)'
/home/runner/work/deps/src/tbb/include/tbb/../oneapi/tbb/task_arena.h:466: error: undefined reference to 'tbb::detail::r1::max_concurrency(tbb::detail::d1::task_arena_base const*)'
/home/runner/work/deps/src/tbb/include/tbb/../oneapi/tbb/detail/_task.h:191: error: undefined reference to 'tbb::detail::r1::execute_and_wait(tbb::detail::d1::task&, tbb::detail::d1::task_group_context&, tbb::detail::d1::wait_context&, tbb::detail::d1::task_group_context&)'
/home/runner/work/deps/src/tbb/include/tbb/../oneapi/tbb/task_group.h:367: error: undefined reference to 'tbb::detail::r1::destroy(tbb::detail::d1::task_group_context&)'
/home/runner/work/deps/src/tbb/include/tbb/../oneapi/tbb/task_group.h:367: error: undefined reference to 'tbb::detail::r1::destroy(tbb::detail::d1::task_group_context&)'
In mac OS , it works well, but centos 7.2(gcc 7.2) and ubuntu(clang 6) it lead to the errors .
Any one can help??
I am trying to execute a binary(my_binary) from a python script abc.py as following.
import os
import sys
import logging
from subprocess import Popen, PIPE
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %
(levelname)-8s %(message)s',datefmt='%a, %d %b %Y
%H:%M:%S',filename='/var/home/root/root.txt',filemode='w')
os.environ["ABCDE"]="x.x.x.x"
os.environ["USER"]="user"
os.environ["PASSWORD"]="password"
p1 = Popen(["/var/home/root/my_binary","exec"], stdout=PIPE, stderr=PIPE)
out, err=p1.communicate()
logging.info(out)
return out,err
if __name__ == '__main__':
out,err = run(sys.argv[1:])
logging.info(out)
if( out.strip() == "Success: Check:"):
print "Success: OK:"
If I execute this abc.py python program directly on the terminal, the binary my_binary will get executed.
But when I am trying to run the program from another c++ (using pipe in a similar way as above) program(say xyz.cpp), my_binary is failing to execute.
Note:
The xyz.cpp is built with gcc(libstdc++.so.7).
The my_binary is built with gcc(libstdc++.so.6).
my_binary is built with "-D_GLIBCXX_USE_CXX11_ABI=0" as the .so used in
my_binary are built using older g++(v 4.5).
The ldd o/p for my_binary
linux-vdso.so.1 => (0x00007fff2c9ff000)
libx.so.0 => /opt/lib/libx.so.0 (0x00007f6caa7f6000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6caa5d9000)
libstdc++.so.6 => /opt/lib/libstdc++.so.6 (0x00007f6caa4be000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6caa23a000)
libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0x00007f6caa224000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6ca9e8f000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f6ca9c8b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6cab1e0000)
ldd o/p for xyz.cpp
linux-vdso.so.1 => (0x00007fff62dff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3b736af000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f3b734ab000)
libz.so.1 => /lib64/libz.so.1 (0x00007f3b72dc2000)
libstdc++.so.7 => /opt/lib64/libstdc++.so.7 (0x00007f3b7204e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f3b71dc9000)
libgcc_s.so.1 => /opt/lib64/libgcc_s.so.1 (0x00007f3b71db2000)
libc.so.6 => /lib64/libc.so.6 (0x00007f3b71a1e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3b738d2000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f3b70a73000)
objdump -T my_binary|fgrep GLIBC
GLIBCXX_3.4
GLIBC_2.2.5
GLIBC_2.4
objdump -T xyz.cpp|fgrep GLIBC
GLIBC_2.3.2
GLIBC_2.2.5
GLIBCXX_7.0
The backtrace is:
(gdb) bt
#0 0x00007f80a3f39495 in raise () from /lib64/libc.so.6
#1 0x00007f80a3f3ac75 in abort () from /lib64/libc.so.6
#2 0x00007f80a528a0d5 in __gnu_cxx::__verbose_terminate_handler() ()
from /opt/lib/libstdc++.so.6
#3 0x00007f80a5288166 in ?? () from /opt/lib/libstdc++.so.6
#4 0x00007f80a5288193 in std::terminate() () from
/opt/lib/libstdc++.so.6
#5 0x00007f80a52883e6 in __cxa_throw () from /opt/lib/libstdc++.so.6
#6 0x00007f80a52e3262 in std::__throw_logic_error(char const*) () from
/opt/lib/libstdc++.so.6
#7 0x00007f80a52ef6f1 in char* std::string::_S_construct<char const*>
(char const*, char const*, std::allocator<char> const&,
std::forward_iterator_tag) ()
from /opt/lib/libstdc++.so.6
#8 0x00007f80a52efac8 in std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::basic_string(char
const*, std::allocator<char> const&) ()
from /opt/lib/libstdc++.so.6
All the required shared as well as static libraries are present in the env.
Any help would be appreciated.
Thanks.
Using xerces-c-3.1.1 and SolarisStudio12.5Beta-solaris-x86-bin (on Solaris 10).
./configure CXX=CC CC=cc CXXFLAGS="-std=c++11"
gmake
gmake check
results in 37 core dumps and the error messages
terminate called after throwing an instance of 'xercesc_3_1::EndOfEntityException'
a pstack on 1 of the core files show
core 'core_gs580w_XSerializerTest_132_10_1462965423_23542' of 23542: /usr/local/src/xerces-c-3.1.3/tests/.libs/XSerializerTest -v=always pe
fdb5c925 _lwp_kill (1, 6) + 15
fdb03783 raise (6) + 1f
fdae29f5 abort (fdc725cc, 107, 8118140, fdbc3cd8, fedb04d0, fdc725cc) + cd
fdd71eb5 _ZN9__gnu_cxx27__verbose_terminate_handlerEv (1, 0, fdd6eb0b, fddb3468, 8114df0, 8045f00) + 175
fdd6eb17 ???????? (fdd71d40, 0, fdd6eb75, fdd6eba7, fdd6eb99, fddb3468)
fdd6ebb0 ???????? (8114df0, fedb04d0, fdd6eb75, fdd6ee0f, fecfa708, 807b0c0)
fdd6ee3e ???????? (8114e10, fed7d848, feb24d00, feb24aec, 8114db8, fe8f3468)
feb24bff _ZN11xercesc_3_19ReaderMgr9popReaderEv (80df840, 8045b14, 0, feb21a2c) + 11f
feb21a60 _ZN11xercesc_3_19ReaderMgr14skipPastSpacesEv (80df840, 0, 0, febf3911) + 40
febf3d4e _ZN11xercesc_3_110DTDScanner17scanExtSubsetDeclEbb (8045f00, 0, 1, 64) + 44e
feb09db0 _ZN11xercesc_3_112IGXMLScanner15scanDocTypeDeclEv (80df7b8, fec9dec8, fef90c18, feb512f1) + 1610
feb5154f _ZN11xercesc_3_110XMLScanner10scanPrologEv (80df7b8, 80e5c38, feb24700, 0) + 26f
feb0483f _ZN11xercesc_3_112IGXMLScanner12scanDocumentERKNS_11InputSourceE (80df7b8, 80e5c38, 807b0c0, feb4cb51) + 9f
feb4d0ad _ZN11xercesc_3_110XMLScanner12scanDocumentEPKt (80df7b8, 80e5c08, 807b0c0, feb4d96e) + 56d
feb4d9c4 _ZN11xercesc_3_110XMLScanner12scanDocumentEPKc (80df7b8, 8046d5c, feb98f00, 0) + 64
feb9500f _ZN11xercesc_3_117SAX2XMLReaderImpl5parseEPKc (80df500, 8046d5c, 1, 8046ca8) + af
0805e1d2 _Z8parseOnePN11xercesc_3_115BinOutputStreamEPKc (80dd6c0, 8046d5c, 807adf0, fdd2305c) + 112
0805dd70 _Z9parseCasePKc (8046d5c, 0, 3e8, 0) + b0
0805d8a6 main (3, 8046bb0, 8046bc0) + be6
0805a932 _start (3, 8046d18, 8046d52, 8046d5c, 0, 8046d69) + 72
removing CXXFLAGS="-std=c++11" from the configure results in a successful "gmake check"
Any tips on making xerces-c work with sun studio 12.5 and c++11?
Assuming the build process for Xerces 3.1.1 is the same as Xerces 3.1.4, Xerces is explicitly linking in the standard Solaris C++ run-time libraries. That's a problem because specifying -std=c++11 causes Solaris Studio to use the g++ ABI and runtime.
This is ldd output on one of the test executables from compiling Xerces 3.1.4, admittedly on Solaris 11:
bash-4.1$ ldd XSValueTest
libxerces-c-3.1.so => /home/achenle/xerces/xerces-c-3.1.4/src/.libs/libxerces-c-3.1.so
libpthread.so.1 => /lib/libpthread.so.1
libcurl.so.3 => /usr/lib/libcurl.so.3
libidn.so.11 => /usr/lib/libidn.so.11
libsldap.so.1 => /usr/lib/libsldap.so.1
libldap.so.5 => /usr/lib/libldap.so.5
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1 => /lib/libnsl.so.1
libgss.so.1 => /usr/lib/libgss.so.1
libssl.so.1.0.0 => /lib/libssl.so.1.0.0
libcrypto.so.1.0.0 => /lib/libcrypto.so.1.0.0
libz.so.1 => /lib/libz.so.1
libstdc++.so.6 => /opt/SUNWspro/lib/compilers/CC-gcc/lib/libstdc++.so.6
libgcc_s.so.1 => /opt/SUNWspro/lib/compilers/CC-gcc/lib/libgcc_s.so.1
librt.so.1 => /lib/librt.so.1
libm.so.2 => /lib/libm.so.2
libc.so.1 => /lib/libc.so.1
libstatomic.so.1 => /opt/SUNWspro/lib/compilers/atomic/libstatomic.so.1
libCstd.so.1 => /usr/lib/libCstd.so.1
libCrun.so.1 => /usr/lib/libCrun.so.1
libscf.so.1 => /lib/libscf.so.1
libsasl.so.1 => /usr/lib/libsasl.so.1
libmd.so.1 => /lib/libmd.so.1
libnspr4.so => /usr/lib/mps/libnspr4.so
libplc4.so => /usr/lib/mps/libplc4.so
libnss3.so => /usr/lib/mps/libnss3.so
libssl3.so => /usr/lib/mps/libssl3.so
libmp.so.2 => /lib/libmp.so.2
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
libnvpair.so.1 => /lib/libnvpair.so.1
libsmbios.so.1 => /usr/lib/libsmbios.so.1
libsoftcrypto.so.1 => /lib/libsoftcrypto.so.1
libelf.so.1 => /lib/libelf.so.1
libdl.so.1 => /lib/libdl.so.1
libnssutil3.so => /usr/lib/mps/libnssutil3.so
libplds4.so => /usr/lib/mps/libplds4.so
libthread.so.1 => /lib/libthread.so.1
libcryptoutil.so.1 => /lib/libcryptoutil.so.1
Note the presence of libstdc++.so.6 (the g++ runtime) and libCstd.so.1 and libCrun.so.1 (the standard Solaris C++ runtime).
This is from the "What's New" documentation on Solaris Studio 12.4:
Using C++11 Features
In Oracle Solaris Studio 12.4, the C++ compiler supports C++11, a new
language and ABI (Application Binary Interface).
In C++ 11 mode, the CC compiler uses the g++ ABI and a version of
the g++ runtime library that is supplied with Oracle Solaris Studio.
For this release, version 4.8.2 of the g++ runtime library is used.
The C++11 implying the use of the g++ ABI and runtime also applies to Solaris Studio 12.5:
A.2.88 –std=v
...
c++11
Selects C++ 11 dialect and g++ binary compatibility. It sets the
__SUNPRO_CC_COMPAT preprocessor macro to 'G'.
But the Xerces build explicitly links in the standard Solaris C++ runtime in addition to the implicitly-linked g++ runtime.
I am trying to make a releasable version of a project. I tested the exe with the dlls included in the same directory on several different machines. It is running on my computer (windows 8 64 bit), a 32 bit windows xp virtual machine, a 32 bit windows 7 virtual machine, and another windows 7 64 bit laptop. Someone else, however, is trying to run it on another windows 7 64 bit machine. He is getting a Microsoft Visual C++ Runtime Library error that says:
This application has requested the Runtime to terminate in an unusual way. Please contact the application's support team for more information.
dlls I'm including in the application's directory:
libgcc_s_dw2-1.dll
libstdc++-6.dll
mingwm10.dll
QtCore4.dll
QtCored4.dll
QtGui4.dll
QtNetwork4.dll
QtSerialPortd.dll
This is what a ldd on the exe file looks like on my windows 8 computer where it is working:
ntdll.dll => /cygdrive/c/windows/SYSTEM32/ntdll.dll (0x7fc44b50000)
ntdll.dll => /cygdrive/c/windows/SYSTEM32/ntdll.dll (0x77730000)
wow64.dll => /cygdrive/c/windows/SYSTEM32/wow64.dll (0x776e0000)
wow64win.dll => /cygdrive/c/windows/system32/wow64win.dll (0x77670000)
wow64cpu.dll => /cygdrive/c/windows/system32/wow64cpu.dll (0x776d0000)
??? => ??? (0x540000)
KERNEL32.DLL => /cygdrive/c/windows/SYSTEM32/KERNEL32.DLL (0x75680000)
??? => ??? (0x540000)
??? => ??? (0x540000)
KERNEL32.DLL => /cygdrive/c/windows/SYSTEM32/KERNEL32.DLL (0x75680000)
KERNELBASE.dll => /cygdrive/c/windows/SYSTEM32/KERNELBASE.dll (0x76da0000)
msvcrt.dll => /cygdrive/c/windows/SYSTEM32/msvcrt.dll (0x76ba0000)
WSOCK32.DLL => /cygdrive/c/windows/SYSTEM32/WSOCK32.DLL (0x747e0000)
libgcc_s_dw2-1.dll => /cygdrive/c/Mingw32/bin/libgcc_s_dw2-1.dll (0x6e940000)
libstdc++-6.dll => /cygdrive/c/Mingw32/bin/libstdc++-6.dll (0x6fc40000)
QtCore4.dll => /cygdrive/c/Qt/4.8.4/bin/QtCore4.dll (0x6e0c0000)
QtGui4.dll => /cygdrive/c/Qt/4.8.4/bin/QtGui4.dll (0x67700000)
QtNetwork4.dll => /cygdrive/c/Qt/4.8.4/bin/QtNetwork4.dll (0x65c80000)
QtSerialPortd.dll => /cygdrive/c/Qt/4.8.4/bin/QtSerialPortd.dll (0x63680000)
WS2_32.dll => /cygdrive/c/windows/SYSTEM32/WS2_32.dll (0x76e50000)
ADVAPI32.DLL => /cygdrive/c/windows/SYSTEM32/ADVAPI32.DLL (0x74e60000)
mingwm10.dll => /cygdrive/c/Mingw32/bin/mingwm10.dll (0x6fbc0000)
OLE32.dll => /cygdrive/c/windows/SYSTEM32/OLE32.dll (0x74f20000)
USER32.dll => /cygdrive/c/windows/SYSTEM32/USER32.dll (0x76c80000)
COMDLG32.DLL => /cygdrive/c/windows/SYSTEM32/COMDLG32.DLL (0x75800000)
GDI32.dll => /cygdrive/c/windows/SYSTEM32/GDI32.dll (0x75250000)
IMM32.DLL => /cygdrive/c/windows/SYSTEM32/IMM32.DLL (0x76eb0000)
OLEAUT32.DLL => /cygdrive/c/windows/SYSTEM32/OLEAUT32.DLL (0x76ed0000)
SHELL32.DLL => /cygdrive/c/windows/SYSTEM32/SHELL32.DLL (0x75ad0000)
WINMM.DLL => /cygdrive/c/windows/SYSTEM32/WINMM.DLL (0x747b0000)
WINSPOOL.DRV => /cygdrive/c/windows/SYSTEM32/WINSPOOL.DRV (0x73800000)
setupapi.dll => /cygdrive/c/windows/SYSTEM32/setupapi.dll (0x750a0000)
QtCored4.dll => /cygdrive/c/Qt/4.8.4/bin/QtCored4.dll (0x69cc0000)
RPCRT4.dll => /cygdrive/c/windows/SYSTEM32/RPCRT4.dll (0x775c0000)
NSI.dll => /cygdrive/c/windows/SYSTEM32/NSI.dll (0x76ea0000)
sechost.dll => /cygdrive/c/windows/SYSTEM32/sechost.dll (0x77510000)
combase.dll => /cygdrive/c/windows/SYSTEM32/combase.dll (0x753d0000)
SHLWAPI.dll => /cygdrive/c/windows/SYSTEM32/SHLWAPI.dll (0x75a90000)
COMCTL32.dll => /cygdrive/c/windows/WinSxS/x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.9200.16658_none_bf1359a245f1cd12/COMCTL32.dll (0x73cd0000)
MSCTF.dll => /cygdrive/c/windows/SYSTEM32/MSCTF.dll (0x74d80000)
WINMMBASE.dll => /cygdrive/c/windows/SYSTEM32/WINMMBASE.dll (0x74780000)
CFGMGR32.dll => /cygdrive/c/windows/SYSTEM32/CFGMGR32.dll (0x77020000)
DEVOBJ.dll => /cygdrive/c/windows/SYSTEM32/DEVOBJ.dll (0x77070000)
SspiCli.dll => /cygdrive/c/windows/SYSTEM32/SspiCli.dll (0x74d60000)
CRYPTBASE.dll => /cygdrive/c/windows/SYSTEM32/CRYPTBASE.dll (0x74d50000)
SHCORE.DLL => /cygdrive/c/windows/SYSTEM32/SHCORE.DLL (0x74700000)
bcryptPrimitives.dll => /cygdrive/c/windows/SYSTEM32/bcryptPrimitives.dll (0x74cf0000)
Edit:
I rebuilt the release version on an XP machine. It looks like the libstdc++-6.dll is no longer showing up in ldd.
ldd on the 32 bit Windows XP machine it was built on (working):
ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c900000)
kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000)
QtCore4.dll => /cygdrive/c/QtSDK/Desktop/Qt/4.7.4/mingw/bin/QtCore4.dll (0x6a1c0000)
ADVAPI32.DLL => /cygdrive/c/WINDOWS/system32/ADVAPI32.DLL (0x77dd0000)
RPCRT4.dll => /cygdrive/c/WINDOWS/system32/RPCRT4.dll (0x77e70000)
Secur32.dll => /cygdrive/c/WINDOWS/system32/Secur32.dll (0x77fe0000)
mingwm10.dll => /cygdrive/c/QtSDK/mingw/bin/mingwm10.dll (0x6fbc0000)
msvcrt.dll => /cygdrive/c/WINDOWS/system32/msvcrt.dll (0x77c10000)
OLE32.dll => /cygdrive/c/WINDOWS/system32/OLE32.dll (0x774e0000)
GDI32.dll => /cygdrive/c/WINDOWS/system32/GDI32.dll (0x77f10000)
USER32.dll => /cygdrive/c/WINDOWS/system32/USER32.dll (0x7e410000)
WS2_32.DLL => /cygdrive/c/WINDOWS/system32/WS2_32.DLL (0x71ab0000)
WS2HELP.dll => /cygdrive/c/WINDOWS/system32/WS2HELP.dll (0x71aa0000)
libgcc_s_dw2-1.dll => /cygdrive/c/QtSDK/mingw/bin/libgcc_s_dw2-1.dll (0x6e940000)
QtGui4.dll => /cygdrive/c/QtSDK/Desktop/Qt/4.7.4/mingw/bin/QtGui4.dll (0x65100000)
COMDLG32.DLL => /cygdrive/c/WINDOWS/system32/COMDLG32.DLL (0x763b0000)
COMCTL32.dll => /cygdrive/c/WINDOWS/system32/COMCTL32.dll (0x5d090000)
SHELL32.dll => /cygdrive/c/WINDOWS/system32/SHELL32.dll (0x7c9c0000)
SHLWAPI.dll => /cygdrive/c/WINDOWS/system32/SHLWAPI.dll (0x77f60000)
IMM32.DLL => /cygdrive/c/WINDOWS/system32/IMM32.DLL (0x76390000)
OLEAUT32.DLL => /cygdrive/c/WINDOWS/system32/OLEAUT32.DLL (0x77120000)
WINMM.DLL => /cygdrive/c/WINDOWS/system32/WINMM.DLL (0x76b40000)
WINSPOOL.DRV => /cygdrive/c/WINDOWS/system32/WINSPOOL.DRV (0x73000000)
QtNetwork4.dll => /cygdrive/c/QtSDK/Desktop/Qt/4.7.4/mingw/bin/QtNetwork4.dll (0x6ff00000)
QtSerialPortd.dll => /cygdrive/c/QtSDK/Desktop/Qt/4.7.4/mingw/bin/QtSerialPortd.dll (0x6ef80000)
QtCored4.dll => /cygdrive/c/QtSDK/Desktop/Qt/4.7.4/mingw/bin/QtCored4.dll (0x680000)
setupapi.dll => /cygdrive/c/WINDOWS/system32/setupapi.dll (0x77920000)
WSOCK32.DLL => /cygdrive/c/WINDOWS/system32/WSOCK32.DLL (0x71ad0000)
ldd on the Windows 8 computer (working) :
ntdll.dll => /cygdrive/c/windows/SYSTEM32/ntdll.dll (0x7fc44b50000)
ntdll.dll => /cygdrive/c/windows/SYSTEM32/ntdll.dll (0x77730000)
wow64.dll => /cygdrive/c/windows/SYSTEM32/wow64.dll (0x776e0000)
wow64win.dll => /cygdrive/c/windows/system32/wow64win.dll (0x77670000)
wow64cpu.dll => /cygdrive/c/windows/system32/wow64cpu.dll (0x776d0000)
??? => ??? (0x2b0000)
KERNEL32.DLL => /cygdrive/c/windows/SYSTEM32/KERNEL32.DLL (0x75680000)
??? => ??? (0x2b0000)
??? => ??? (0x2b0000)
KERNEL32.DLL => /cygdrive/c/windows/SYSTEM32/KERNEL32.DLL (0x75680000)
KERNELBASE.dll => /cygdrive/c/windows/SYSTEM32/KERNELBASE.dll (0x76da0000)
apphelp.dll => /cygdrive/c/windows/system32/apphelp.dll (0x73de0000)
msvcrt.dll => /cygdrive/c/windows/SYSTEM32/msvcrt.dll (0x76ba0000)
WSOCK32.DLL => /cygdrive/c/windows/SYSTEM32/WSOCK32.DLL (0x747e0000)
libgcc_s_dw2-1.dll => /cygdrive/c/users/jared/documents/telkonet/ESU Release/test/esutest/libgcc_s_dw2-1.dll (0x6e940000)
libstdc++-6.dll => /cygdrive/c/users/jared/documents/telkonet/ESU Release/test/esutest/libstdc++-6.dll (0x6fc40000)
QtCore4.dll => /cygdrive/c/users/jared/documents/telkonet/ESU Release/test/esutest/QtCore4.dll (0x6e0c0000)
QtGui4.dll => /cygdrive/c/users/jared/documents/telkonet/ESU Release/test/esutest/QtGui4.dll (0x67700000)
QtNetwork4.dll => /cygdrive/c/users/jared/documents/telkonet/ESU Release/test/esutest/QtNetwork4.dll (0x65c80000)
QtSerialPortd.dll => /cygdrive/c/users/jared/documents/telkonet/ESU Release/test/esutest/QtSerialPortd.dll (0x63680000)
WS2_32.dll => /cygdrive/c/windows/SYSTEM32/WS2_32.dll (0x76e50000)
ADVAPI32.DLL => /cygdrive/c/windows/SYSTEM32/ADVAPI32.DLL (0x74e60000)
mingwm10.dll => /cygdrive/c/users/jared/documents/telkonet/ESU Release/test/esutest/mingwm10.dll (0x6fbc0000)
OLE32.dll => /cygdrive/c/windows/SYSTEM32/OLE32.dll (0x74f20000)
USER32.dll => /cygdrive/c/windows/SYSTEM32/USER32.dll (0x76c80000)
COMDLG32.DLL => /cygdrive/c/windows/SYSTEM32/COMDLG32.DLL (0x75800000)
GDI32.dll => /cygdrive/c/windows/SYSTEM32/GDI32.dll (0x75250000)
IMM32.DLL => /cygdrive/c/windows/SYSTEM32/IMM32.DLL (0x76eb0000)
OLEAUT32.DLL => /cygdrive/c/windows/SYSTEM32/OLEAUT32.DLL (0x76ed0000)
SHELL32.DLL => /cygdrive/c/windows/SYSTEM32/SHELL32.DLL (0x75ad0000)
WINMM.DLL => /cygdrive/c/windows/SYSTEM32/WINMM.DLL (0x747b0000)
WINSPOOL.DRV => /cygdrive/c/windows/SYSTEM32/WINSPOOL.DRV (0x73800000)
setupapi.dll => /cygdrive/c/windows/SYSTEM32/setupapi.dll (0x750a0000)
QtCored4.dll => /cygdrive/c/Qt/4.8.4/bin/QtCored4.dll (0x69cc0000)
RPCRT4.dll => /cygdrive/c/windows/SYSTEM32/RPCRT4.dll (0x775c0000)
NSI.dll => /cygdrive/c/windows/SYSTEM32/NSI.dll (0x76ea0000)
sechost.dll => /cygdrive/c/windows/SYSTEM32/sechost.dll (0x77510000)
combase.dll => /cygdrive/c/windows/SYSTEM32/combase.dll (0x753d0000)
SHLWAPI.dll => /cygdrive/c/windows/SYSTEM32/SHLWAPI.dll (0x75a90000)
COMCTL32.dll => /cygdrive/c/windows/WinSxS/x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.9200.16658_none_bf1359a245f1cd12/COMCTL32.dll (0x73cd0000)
MSCTF.dll => /cygdrive/c/windows/SYSTEM32/MSCTF.dll (0x74d80000)
WINMMBASE.dll => /cygdrive/c/windows/SYSTEM32/WINMMBASE.dll (0x74780000)
CFGMGR32.dll => /cygdrive/c/windows/SYSTEM32/CFGMGR32.dll (0x77020000)
DEVOBJ.dll => /cygdrive/c/windows/SYSTEM32/DEVOBJ.dll (0x77070000)
SspiCli.dll => /cygdrive/c/windows/SYSTEM32/SspiCli.dll (0x74d60000)
CRYPTBASE.dll => /cygdrive/c/windows/SYSTEM32/CRYPTBASE.dll (0x74d50000)
SHCORE.DLL => /cygdrive/c/windows/SYSTEM32/SHCORE.DLL (0x74700000)
bcryptPrimitives.dll => /cygdrive/c/windows/SYSTEM32/bcryptPrimitives.dll (0x74cf0000)
ldd on the Windows 7 64 bit (working):
ntdll.dll => /cygdrive/c/Windows/SYSTEM32/ntdll.dll (0x76f30000)
ntdll.dll => /cygdrive/c/Windows/SysWOW64/ntdll.dll (0x77110000)
wow64.dll => /cygdrive/c/Windows/SYSTEM32/wow64.dll (0x72c50000)
wow64win.dll => /cygdrive/c/Windows/SYSTEM32/wow64win.dll (0x72bf0000)
wow64cpu.dll => /cygdrive/c/Windows/SYSTEM32/wow64cpu.dll (0x72be0000)
??? => ??? (0x76d10000)
kernel32.dll => /cygdrive/c/Windows/syswow64/kernel32.dll (0x75670000)
??? => ??? (0x76d10000)
??? => ??? (0x76e30000)
kernel32.dll => /cygdrive/c/Windows/syswow64/kernel32.dll (0x75670000)
KERNELBASE.dll => /cygdrive/c/Windows/syswow64/KERNELBASE.dll (0x76a30000)
QtCore4.dll => /cygdrive/c/users/admin/downloads/esutestexe/QtCore4.dll (0x6a1c0000)
ADVAPI32.DLL => /cygdrive/c/Windows/syswow64/ADVAPI32.DLL (0x74c90000)
msvcrt.dll => /cygdrive/c/Windows/syswow64/msvcrt.dll (0x75570000)
sechost.dll => /cygdrive/c/Windows/SysWOW64/sechost.dll (0x74f70000)
RPCRT4.dll => /cygdrive/c/Windows/syswow64/RPCRT4.dll (0x75480000)
SspiCli.dll => /cygdrive/c/Windows/syswow64/SspiCli.dll (0x74b60000)
CRYPTBASE.dll => /cygdrive/c/Windows/syswow64/CRYPTBASE.dll (0x74b50000)
mingwm10.dll => /cygdrive/c/users/admin/downloads/esutestexe/mingwm10.dll (0x6fbc0000)
OLE32.dll => /cygdrive/c/Windows/syswow64/OLE32.dll (0x768c0000)
GDI32.dll => /cygdrive/c/Windows/syswow64/GDI32.dll (0x76c80000)
USER32.dll => /cygdrive/c/Windows/syswow64/USER32.dll (0x76740000)
LPK.dll => /cygdrive/c/Windows/syswow64/LPK.dll (0x74fe0000)
USP10.dll => /cygdrive/c/Windows/syswow64/USP10.dll (0x74bc0000)
WS2_32.DLL => /cygdrive/c/Windows/syswow64/WS2_32.DLL (0x74f90000)
NSI.dll => /cygdrive/c/Windows/syswow64/NSI.dll (0x76a20000)
libgcc_s_dw2-1.dll => /cygdrive/c/users/admin/downloads/esutestexe/libgcc_s_dw2-1.dll (0x6e940000)
QtGui4.dll => /cygdrive/c/users/admin/downloads/esutestexe/QtGui4.dll (0x65100000)
COMDLG32.DLL => /cygdrive/c/Windows/syswow64/COMDLG32.DLL (0x764c0000)
SHLWAPI.dll => /cygdrive/c/Windows/syswow64/SHLWAPI.dll (0x76b20000)
COMCTL32.dll => /cygdrive/c/Windows/WinSxS/x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5/COMCTL32.dll (0x72010000)
SHELL32.dll => /cygdrive/c/Windows/syswow64/SHELL32.dll (0x75790000)
IMM32.DLL => /cygdrive/c/Windows/syswow64/IMM32.DLL (0x76840000)
MSCTF.dll => /cygdrive/c/Windows/syswow64/MSCTF.dll (0x763e0000)
OLEAUT32.DLL => /cygdrive/c/Windows/syswow64/OLEAUT32.DLL (0x76a90000)
WINMM.DLL => /cygdrive/c/Windows/system32/WINMM.DLL (0x725b0000)
WINSPOOL.DRV => /cygdrive/c/Windows/system32/WINSPOOL.DRV (0x720a0000)
QtNetwork4.dll => /cygdrive/c/users/admin/downloads/esutestexe/QtNetwork4.dll (0x6ff00000)
QtSerialPortd.dll => /cygdrive/c/users/admin/downloads/esutestexe/QtSerialPortd.dll (0x6ef80000)
QtCored4.dll => /cygdrive/c/users/admin/downloads/esutestexe/QtCored4.dll (0x7f0000)
setupapi.dll => /cygdrive/c/Windows/syswow64/setupapi.dll (0x74ff0000)
CFGMGR32.dll => /cygdrive/c/Windows/syswow64/CFGMGR32.dll (0x74d40000)
DEVOBJ.dll => /cygdrive/c/Windows/syswow64/DEVOBJ.dll (0x768a0000)
WSOCK32.DLL => /cygdrive/c/Windows/system32/WSOCK32.DLL (0x661d0000)
ldd on the Windows 7 64 bit machine (not working):
ntdll.dll => /cygdrive/c/Windows/SYSTEM32/ntdll.dll (0x76cf0000)
ntdll.dll => /cygdrive/c/Windows/SysWOW64/ntdll.dll (0x76ed0000)
wow64.dll => /cygdrive/c/Windows/SYSTEM32/wow64.dll (0x748b0000)
wow64win.dll => /cygdrive/c/Windows/SYSTEM32/wow64win.dll (0x74850000)
wow64cpu.dll => /cygdrive/c/Windows/SYSTEM32/wow64cpu.dll (0x74840000)
??? => ??? (0x76ad0000)
kernel32.dll => /cygdrive/c/Windows/syswow64/kernel32.dll (0x76560000)
??? => ??? (0x76ad0000)
??? => ??? (0x76bf0000)
kernel32.dll => /cygdrive/c/Windows/syswow64/kernel32.dll (0x76560000)
KERNELBASE.dll => /cygdrive/c/Windows/syswow64/KERNELBASE.dll (0x7522000 0)
QtCore4.dll => /cygdrive/c/Users/bschwanke/Desktop/ESUtestEXE/QtCore4.dl l (0x6a1c0000)
ADVAPI32.DLL => /cygdrive/c/Windows/syswow64/ADVAPI32.DLL (0x74a70000)
msvcrt.dll => /cygdrive/c/Windows/syswow64/msvcrt.dll (0x74e10000)
sechost.dll => /cygdrive/c/Windows/SysWOW64/sechost.dll (0x76ab0000)
RPCRT4.dll => /cygdrive/c/Windows/syswow64/RPCRT4.dll (0x75130000)
SspiCli.dll => /cygdrive/c/Windows/syswow64/SspiCli.dll (0x74920000)
CRYPTBASE.dll => /cygdrive/c/Windows/syswow64/CRYPTBASE.dll (0x74910000)
mingwm10.dll => /cygdrive/c/Users/bschwanke/Desktop/ESUtestEXE/mingwm10. dll (0x6fbc0000)
OLE32.dll => /cygdrive/c/Windows/syswow64/OLE32.dll (0x76390000)
GDI32.dll => /cygdrive/c/Windows/syswow64/GDI32.dll (0x749e0000)
USER32.dll => /cygdrive/c/Windows/syswow64/USER32.dll (0x761a0000)
LPK.dll => /cygdrive/c/Windows/syswow64/LPK.dll (0x76ea0000)
USP10.dll => /cygdrive/c/Windows/syswow64/USP10.dll (0x75270000)
WS2_32.DLL => /cygdrive/c/Windows/syswow64/WS2_32.DLL (0x74b10000)
NSI.dll => /cygdrive/c/Windows/syswow64/NSI.dll (0x74ec0000)
libgcc_s_dw2-1.dll => /cygdrive/c/Users/bschwanke/Desktop/ESUtestEXE/lib gcc_s_dw2-1.dll (0x6e940000)
QtGui4.dll => /cygdrive/c/Users/bschwanke/Desktop/ESUtestEXE/QtGui4.dll (0x65100000)
COMDLG32.DLL => /cygdrive/c/Windows/syswow64/COMDLG32.DLL (0x76680000)
SHLWAPI.dll => /cygdrive/c/Windows/syswow64/SHLWAPI.dll (0x74ee0000)
COMCTL32.dll => /cygdrive/c/Windows/WinSxS/x86_microsoft.windows.common- controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5/COMCTL32.dll (0x 733e0000)
SHELL32.dll => /cygdrive/c/Windows/syswow64/SHELL32.dll (0x753b0000)
IMM32.DLL => /cygdrive/c/Windows/syswow64/IMM32.DLL (0x74980000)
MSCTF.dll => /cygdrive/c/Windows/syswow64/MSCTF.dll (0x762b0000)
OLEAUT32.DLL => /cygdrive/c/Windows/syswow64/OLEAUT32.DLL (0x767a0000)
WINMM.DLL => /cygdrive/c/Windows/system32/WINMM.DLL (0x73e80000)
WINSPOOL.DRV => /cygdrive/c/Windows/system32/WINSPOOL.DRV (0x74240000)
QtNetwork4.dll => /cygdrive/c/Users/bschwanke/Desktop/ESUtestEXE/QtNetwo rk4.dll (0x6ff00000)
QtSerialPortd.dll => /cygdrive/c/Users/bschwanke/Desktop/ESUtestEXE/QtSe rialPortd.dll (0x6ef80000)
QtCored4.dll => /cygdrive/c/Users/bschwanke/Desktop/ESUtestEXE/QtCored4. dll (0x780000)
setupapi.dll => /cygdrive/c/Windows/syswow64/setupapi.dll (0x76000000)
CFGMGR32.dll => /cygdrive/c/Windows/syswow64/CFGMGR32.dll (0x76770000)
DEVOBJ.dll => /cygdrive/c/Windows/syswow64/DEVOBJ.dll (0x74df0000)
WSOCK32.DLL => /cygdrive/c/Windows/system32/WSOCK32.DLL (0x73120000)
Does the computer that is giving you the Microsoft Visual C++ Runtime Library have the Microsoft Visual C++ redistributable package installed on it? Any computer that does not have the same version of the compiler used to build your program will need the redist package installed so that the executable can load those libraries at runtime.
This page has links to the various redist packages available for download.
Also, with your list of distributed DLLs, you have both QtCore4.dll and QtCored4.dll. The one with a 'd' is a debug DLL and won't be loaded by your Release-built executable. You are also only distributing the debug version of QtSerialPortd.dll, so you should switch that over to the release version as well (drop the 'd').
Well I figured it out. It is an issue with DB9 serial com port.
The application uses serial port connections to a device. The computer it wasn't working on had an old DB9 serial port on it. The other computers only had USB ports. When we plugged in a DB9 serial cable the application ran just fine.
There are some 3rd party libraries dealing with some of the serial port stuff so I'll have to take a look at that.
I built a local version of OpenGL under my home directory. I want to link another shared library against it, but for some reason the linker still links it against the one under /usr/lib, as reported by ldd:
$ cc -o lib/libtfont.so -shared -Wl,-soname,/home/wknight/proj/wkl/tfont.lib/lib/libtfont.so tfont.o -L/home/wknight/proj/wkl/img.lib/lib -limg -L/home/wknight/swtools/opengl/lib -lGL -lGLU
$ ldd lib/libtfont.so
linux-gate.so.1 => (0xb7710000)
/home/wknight/proj/wkl/img.lib/lib/libimg.so (0xb76fc000)
libGL.so.1 => /usr/lib/libGL.so.1 (0xb7689000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb7618000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb74d1000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb73b4000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb73a5000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb73a0000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb739c000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7397000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb738d000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7367000)
libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb734e000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7349000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7254000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7236000)
/lib/ld-linux.so.2 (0xb7711000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb721d000)
librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb7214000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb7211000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb720b000)
$ ls -l /home/wknight/swtools/opengl/lib/libGL*
lrwxrwxrwx 1 wknight wknight 10 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGL.so -> libGL.so.1
lrwxrwxrwx 1 wknight wknight 12 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGL.so.1 -> libGL.so.1.2
-rwxr-xr-x 1 wknight wknight 1836469 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGL.so.1.2
lrwxrwxrwx 1 wknight wknight 11 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGLU.so -> libGLU.so.1
lrwxrwxrwx 1 wknight wknight 20 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGLU.so.1 -> libGLU.so.1.3.070900
-rwxr-xr-x 1 wknight wknight 1634905 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGLU.so.1.3.070900
lrwxrwxrwx 1 wknight wknight 11 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGLw.so -> libGLw.so.1
lrwxrwxrwx 1 wknight wknight 15 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGLw.so.1 -> libGLw.so.1.0.0
-rwxr-xr-x 1 wknight wknight 37068 Jan 25 16:57 /home/wknight/swtools/opengl/lib/libGLw.so.1.0.0
$
This happens even if I rename my local version of libGL.so and link against the new name. So something is happening behind the scenes that I don't understand. Is the linker looking in ld.so.cache or something? How can I override it?
I found the answer - I just needed to set LD_LIBRARY_PATH to my local version of libGL.so:
$ export LD_LIBRARY_PATH=$HOME/swtools/opengl/lib
$ ldd lib/libtfont.so
linux-gate.so.1 => (0xb778c000)
/home/wknight/proj/wkl/img.lib/lib/libimg.so (0xb7778000)
libGL.so.1 => /home/wknight/swtools/opengl/lib/libGL.so.1 (0xb771f000)
libGLU.so.1 => /home/wknight/swtools/opengl/lib/libGLU.so.1 (0xb76ae000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7559000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb743c000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb742d000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb742a000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7424000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb741f000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb7415000)
libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb73fc000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb73f8000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7302000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb72dc000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb72be000)
/lib/ld-linux.so.2 (0xb778d000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb72a5000)
librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb729c000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb7299000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7293000)
$
This now makes sense to me when I consider that ldd must use the runtime environment in reporting shared library dependencies, not just what is present in the shared library itself. I would have set LD_LIBRARY_PATH before using some executable linked against the shared library, but it didn't occur to me until now that I must also set it for examining the shared library itself.
I built a local version of OpenGL under my home directory
Why? What is your intention doing this? OpenGL is not so much a library, but a specification. What you built is most likely MesaGL. MesaGL does offer HW accelerated OpenGL only with a certain subset of drivers, which also must match your very MesaGL version. Without them, MesaGL will drop into a slow software rasterizer fallback.
As a general rule you always link your program dynamically to the system's libGL.so. If there's no libGL.so present shipping a fallback implementation makes sense only if you can deal with a very slow software rasterizer. Otherwise I'd be better to just inform the user about his systems shortcomings and that either a better GPU must be installed, or the driver installation fixed.
Anyway, if you want to change the path a library is searched in, you should look into the rpath linker flag.