SunStudio 11 cannot link libtiff in Solaris 10 (undefined symbol)

Hello
we are producing a software using multiple external libraries, among them Sam Leffler's TIFF library version 3.6.1
This software compiles and runs well on Solaris 9 / SunStudio 11
But in Solaris 10 / SunStudio we get an 'undefined symbol' error even if the symbol exists!!
I have patched the OS and SunStudio to the latest level required but it's no help
the linker error message is:
CC -compat=4 -I../AGR -I../STA -I../SVI -I../KRN -I../COMMON_APAS -I../CXML -I../SCS -I. -I../INCLUDE -I../AFC -I../ITI -I../IEM -I../MMF -I../MMI -I../ICS -I../EIV -I../TSF -I../TTM -I../TIM -I../MIR -I../INA -I../INX -I../DEC -I../MAR -I../IXA -I../MXR -I../ICO -I../JPEG -I../LTIFF -I../OVS -I../UTIL -I../TRE -I../IRE -I../INR -I../IST -I../IXR -I/opt/SUNWspro/prod/include/CC -I/usr/include -g0 -libmil -xtarget=native -mt -xildoff -keeptmp -verbose=%all -L/usr/lib -L/usr/local/lib -LFPCSolaris10 -L../lib/FPCSolaris10 -L/opt/SUNWspro/prod/lib/rw7/CC4 -L/opt/SUNWspro/lib -L/usr/X11R6/lib -o FPCSolaris10/MainItls_ils FPCSolaris10/MainItls_ils.o FPCSolaris10/MAIN_Module_ils.o -lICS -lEIV -lMIR -lINA -lDEC -lMAR -lICO -lMXR -lIXA -lOVS -lUtil -ltiff -lSVIils -lSTAils -lKRN -lSCS -lITIils -lIEMils -lAGR -lMMF -lAFC -lMMI -lCXML -lcommon_apas -Bstatic -lrwtool -Bdynamic -lnsl -lposix4 -lsocket -lxnet -ldl -lgen -lcurses -lXm -lXt -lX11 -lxml2
ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.489
ld: warning: symbol `clog' has differing types:
(file /opt/SUNWspro/lib/CC4/libC.so type=OBJT; file /usr/lib/libm.so type=FUNC);
/opt/SUNWspro/lib/CC4/libC.so definition taken
Undefined first referenced
symbol in file
TIFFOpenMem ../lib/FPCSolaris10/libIXA.a(IXA_ImageManager.o)
ld: fatal: Symbol referencing errors. No output written to FPCSolaris10/MainItls_ils
gmake[1]: *** [FPCSolaris10/MainItls_ils] Error 1
But if I analyse the libraries used the missing symbol is actually there:
nm -g ../lib/FPCSolaris10/libtiff.a
../lib/FPCSolaris10/libtiff.a[tif_msrc.o]:
[Index] Value Size Type Bind Other Shndx Name
[26] | 0| 0|FUNC |GLOB |0 |UNDEF |TIFFClientOpen
[22] | 0| 0|FUNC |GLOB |0 |UNDEF |TIFFError
[24] | 416| 161|FUNC |GLOB |0 |2 |TIFFOpenMem
[23] | 0| 0|FUNC |GLOB |0 |UNDEF |free
[25] | 0| 0|FUNC |GLOB |0 |UNDEF |malloc
[21] | 0| 0|FUNC |GLOB |0 |UNDEF |memcpy
Does anybody have an idea of what's wrong ?
Thank you for your help!

The libraries are probably being linked in the wrong order.
Libraries are processed in the order seen on the link command. When the linker sees an archive library (.a), it pulls in any .o files from it that can satisfy existing undefined references. Suppose libA needs f1 from library libtiff, but -lA appears on the command line after -ltiff. The reference will not be resolved.
Move the -ltiff option to a spot later on the command line, after all libraries that use libtiff, but before any libraries that libtiff uses. If libraries have circular references (A uses B which uses A), leave -ltiff where it is, but add another one later on the command line. The library will be searched twice.
Another option is to build libtiff as a shared library (.so). The position on the link command line of a shared library is less sensitive, and references to it from later files can still be resolved. You don't list a shared library twice.
An unrelated question: Why are you using the -compat=4 option? That option is provided to allow linking code that was compiled by C++ 4.2 (shipped in 1996), or compiling code that predates the 1998 C++ Standard.
You usually cannot mix -compat=4 binaries with standard-mode binaries, you can't use the C++ standard library in -compat=4 mode, and code using C++ features introduced after the ARM (1991) won't compile in -compat=4 mode. Unless you are stuck with 10-year-old binaries built with C++ 4.2, it is best to recompile all your code in default standard mode (without -compat=4).
The C++ Migration Guide explains all the issues involved in converting code from old-style to standard C++.
[http://docs.sun.com/app/docs/doc/819-3689|http://docs.sun.com/app/docs/doc/819-3689]

Similar Messages

  • Solaris link error - cout undefined symbol

    I am using the Forte 6 C++ compiler, but instead of using the built-in roguewave STL library I am using STLPort 4.5.1 for performance reasons. If I compile my application using the roguewave STL it links ok, but when I use the STLPort I received an undefined symbol for cout.
    Ideas how I can get around this?
    Thanks,
    Sean

    Are you sure you posted the entire output of the linker? It doesn't look like you have.
    The error you posted is:
    Undefined first referenced
    symbol in file
    ISymbolTable::__
    It then goes on to state that the file that needs this symbol (the file that first references this missing symbol) is /lib/cxx//libMyBusinessObjects.so.
    Now, what I don't get is the symbol itself. what is ISymbolTable::__ ? That's just plain whacky.
    Is libMyBusinessObjects.so your library?
    Anyhow, to fix these types of errors, it is typically an issue of adding another lib or .o to you link list in the Makefile. But, first, you have to make sense of the symbol that is "missing".
    If you provide more data, it might help in resolving this...
    -- jrj

  • Linker error:  ild: (undefined symbol)

    I am porting a large pack of C++ from AIX to Solaris. All the modules now passed compilation. But the linker (incremental loader) complains about undefined symbol, such as
    ild: (undefined symbol) __rwstd::__rb_tree<CString,std::pair<const CString,int>,__rwstd::__select1st<std::pair<const CString,int>,CString>,std::less<CString>,std::allocator<std::pair<const CString,int> > >::iterator __rwstd::__rb_tree<CString,std::pair<const CString,int>,__rwstd::__select1st<std::pair<const CString,int>,CString>,std::less<CString>,std::allocator<std::pair<const CString,int> > >::erase(__rwstd::__rb_tree<CString,std::pair<const CString,int>,__rwstd::__select1st<std::pair<const CString,int>,CString>,std::less<CString>,std::allocator<std::pair<const CString,int> > >::iterator,__rwstd::__rb_tree<CString,std::pair<const
    CString,int>,__rwstd::__select1st<std::pair<const String,int>,CString>,std::less<CString>,std::allocator<std::pair<const CString,int> > >::iterator) -- referenced in the text segment of ../Release/solaris/libSpiderWeb.a(SpiderCommand.o)
    ild: (undefined symbol) void std::list<const Process*,std::allocator<const Process*> >::__deallocate_buffers() -- referenced in the text segment of ../Release/solaris/libDragline.a(SystemScope.o)
    I did not explicitly use those functions for sure. However, when I link a small test program using std::list and/or std::map which had at least __deallocate_buffers after template instantiation, the linker did not complain.
    Any insighgt? What could be the problem and what is the fix?
    BTW I am on SunOS 5.6 sun4u sparc SUNW,Ultra-2 and use compiler Sun WorkShop 6 2000/04/07 C++ 5.1.
    Thanks a lot!
    Lan

    There is no Solaris 6.2. To find the Solaris version, run the command
    uname -a
    Probably you mean Sun Workshop (or Forte Developer) 6 update 2. (The name of the product changed mid-stream, from "Sun Workshop" to "Forte Developer", and now is "Sun Studio".)
    To find the compiler version, run the command
    CC -V
    For Workshop 6u2, the CC version is 5.3.
    For old compiler versions like this, problems with missing template definitions can usually be fixed by clearing the template cache and rebuilding. To clear the template cache, you can just remove the directory SunWS_cache, or more conservatively, run the command
    CCadmin -clean
    There will be a cache directory in every directory where you create .o files. You need to clean all of them.
    Starting with Sun Studio 8 (C++ 5.5) in 2003, the compiler no longer uses a template cache by default. These kinds of problems no longer occur.
    You really should stop using the old compiler, and get a current one. The later compilers run faster, generate code that runs faster, are more standard-conforming, support modern hardware, and have superior program development tools (compiler, debugger, performance analyzer, thread analyzer). Best of all, the current compilers are completely free for all uses. The only license is the license you click to accept when you download the product.
    If you are running on Solaris 8, get Sun Studio 11 here:
    [http://developers.sun.com/sunstudio/products/previous/11/index.jsp]
    If you are running on Solaris 9, Solaris 10, Solaris Express, or Open Solaris, get the current release, Sun Studio 12:
    [http://developers.sun.com/sunstudio/]

  • Linking Error : Undefined Symbols: SUN Studio 5

    Hi ,
    I am facing some Linking error which throws up Undefined Symbol errors like .
    [Undefined                       first referenced
    symbol                             in file
    __rwstd::__rb_tree<DevNexus,DevNexus,__rwstd::__ident<DevNexus,DevNexus>,std::less<DevNexus>,std::allocator<DevNexus> >::iterator __rwstd::__rb_tree<DevNexus,DevNexus,__rwstd::__ident<DevNexus,DevNexus>,std::less<DevNexus>,std::allocator<DevNexus> >::erase(__rwstd::__rb_tree<DevNexus,DevNexus,__rwstd::__ident<DevNexus,DevNexus>,std::less<DevNexus>,std::allocator<DevNexus> >::iterator,__rwstd::__rb_tree<DevNexus,DevNexus,__rwstd::__ident<DevNexus,DevNexus>,std::less<DevNexus>,std::allocator<DevNexus> >::iterator) PacketServer.o
    __type_0 std::find<std::deque<AdapterPort,std::allocator<AdapterPort> >::iterator,AdapterPort>(__type_0,__type_0,const __type_1&) PacketServer.o
    void std::vector<Controller,std::allocator<Controller> >::__insert_aux(Controller*,const Controller&) Subsystem.o
    void std::deque<AdapterDisc,std::allocator<AdapterDisc> >::__allocate_at_end() PacketServer.o
    __rwstd::__rb_tree<unsigned long,std::pair<const unsigned long,char*>,__rwstd::__select1st<std::pair<const unsigned long,char*>,unsigned long>,std::less<unsigned long>,std::allocator<std::pair<const unsigned long,char*> > >::iterator __rwstd::__rb_tree<unsigned long,std::pair<const unsigned long,char*>,__rwstd::__select1st<std::pair<const unsigned long,char*>,unsigned long>,std::less<unsigned long>,std::allocator<std::pair<const unsigned long,char*> > >::erase(__rwstd::__rb_tree<unsigned long,std::pair<const unsigned long,char*>,__rwstd::__select1st<std::pair<const unsigned long,char*>,unsigned long>,std::less<unsigned long>,std::allocator<std::pair<const unsigned long,char*> > >::iterator,__rwstd::__rb_tree<unsigned long,std::pair<const unsigned long,char*>,__rwstd::__select1st<std::pair<const unsigned long,char*>,unsigned long>,std::less<unsigned long>,std::allocator<std::pair<const unsigned long,char*> > >::iterator) DeviceProp.o
    std::deque<AdapterPort,std::allocator<AdapterPort> >::~deque() PacketServer.o
    __type_0 std::find<std::deque<AdapterDisc,std::allocator<AdapterDisc> >::iterator,char*>(__type_0,__type_0,const __type_1&) PacketServer.o
    unsigned std::deque<AdapterPort,std::allocator<AdapterPort> >::__buffer_size() PacketServer.o
    unsigned std::deque<AdapterDisc,std::allocator<AdapterDisc> >::__buffer_size() PacketServer.o
    void __rwstd::__rb_tree<DevNexus,DevNexus,__rwstd::__ident<DevNexus,DevNexus>,std::less<DevNexus>,std::allocator<DevNexus> >::__deallocate_buffers() PacketServer.o
    std::deque<AdapterDisc,std::allocator<AdapterDisc> >::~deque() PacketServer.o
    ld: fatal: Symbol referencing errors. No output written to spagent
    *** Error code 1
    make: Fatal error: Command failed for target `spagent'
    Current working directory /home/kiranc/solaris_hang1/4.0/agent
    *** Error code 1
    make: Fatal error: Command failed for target `recurse'
    Current working directory /home/kiranc/solaris_hang1/4.0/agent
    *** Error code 1
    make: Fatal error: Command failed for target `all'
    I am using Sun Studio 5. Pls let me know how to resolve/fix this. Unfortunately I cant upgrade the Sun Studio.
    Thanks in Advance
    Kiran                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Hi Kiran ,
    if you cannot upgrade Sun Studio, I suggest that you take a view on this solution:
    http://forum.java.sun.com/thread.jspa?forumID=850&threadID=5069680
    It only works to std::vector::__insert_aux method, but I think you could get some useful idea from it.
    Good luck.
    Bye.

  • Solaris 2.6: "Undefined symbol snprintf"

    Hello,
    I get an "undefined symbol snprintf" error, everytime I try to load my driver on a Solaris 2.6 ? However, the same driver loads just fine on a Solaris 8.
    Is there a kernel patch for Solaris 2.6 that will fix my problem ?
    Thanks !

    hey,
    I've installed quartus II today too and ran into similiar conflicts. I build version 1.2.1 of libxi again as suggested by davidgurvich, but "tricked out" pacman to avoid rebuilding the whole xorg packages, which depend on  libxi>=1.3:
    pkgname=libxi
    pkgver=1.3
    pkgrel=2
    realver=1.2.1
    pkgdesc="X11 Input extension library"
    arch=('i686' 'x86_64')
    url="http://xorg.freedesktop.org"
    depends=('libxext>=1.1' 'inputproto>=2.0')
    makedepends=('pkgconfig')
    options=(!libtool force)
    license=('custom')
    source=(${url}/releases/individual/lib/libXi-${realver}.tar.bz2)
    md5sums=('cfb36307e8e7ffafe40848dba24e0b11')
    build() {
    cd "${srcdir}/libXi-${realver}"
    ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
    make || return 1
    make DESTDIR="${pkgdir}" install || return 1
    install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
    install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
    works for me... however, this is a dirty solution. maybe someone provide a better fix.

  • C++ linking error Undefined symbols  AIX 5.3 xlC  bdb 4.7

    I am getting the following linking error while linking the MyCb example given in Berkley DB guide
    xlC -bnoquiet -o /ra2/frt_bld/TMPBIN/BDBtest \
    /ra2/frt_bld/TMPOBJ/DBAbs.o \
    /ra2/frt_bld/TMPOBJ/MyDb.o \
    /ra2/frt_bld/TMPOBJ/PPNum.o \
    /ra2/frt_bld/TMPOBJ/PPNumStore.o \
    /ra2/frt_bld/TMPOBJ/PPNumStoreDB.o \
    /ra2/frt_bld/TMPOBJ/UTDbtest.o \
    /ra2/frt_bld/TMPOBJ/UTPPNUm.o \
    -lC_r ../../../ACE_wrappers/ace/libACE.so -ldb_cxx -L../../../db-4.7.25/build_unix -L/usr/local/ssl -L/../../../ACE_wrappers/ace -lcrypto -lpthread -lz -lm -o /ra2/frt_bld/TMPBIN/BDBtest
    ld: 0711-318 ERROR: Undefined symbols were found.
    The following symbols are in error:
    Symbol Inpndx TY CL Source-File(Object-File) OR Import-File{Shared-object}
    RLD: Address Section Rld-type Referencing Symbol
    .Db::set_error_stream(std::basic_ostream<char,std::char_traits<char> >*) [1010] ER PR MyDb.cpp(/ra2/frt_bld/TMPOBJ/MyDb.o)
    00003b50 .text R_RBR [148] .MyDb::MyDb(std::basic_string<char,std::char_traits<char>,std::allocator<char> >&,std::basic_string<char,std::char_traits<char>,std::allocator<char> >&)
    .Db::open(DbTxn*,const char*,const char*,DBTYPE,unsigned int,int) [1012] ER PR MyDb.cpp(/ra2/frt_bld/TMPOBJ/MyDb.o)
    00003b84 .text R_RBR [148] .MyDb::MyDb(std::basic_string<char,std::char_traits<char>,std::allocator<char> >&,std::basic_string<char,std::char_traits<char>,std::allocator<char> >&)
    ER: The return code is 8.
    ld: 0711-317 ERROR: Undefined symbol: .Db::open(DbTxn*,const char*,const char*,DBTYPE,unsigned int,int)
    // File: MyDb.cpp
    #include "MyDb.h"
    #include <string>
    #include <iostream>
    // Class constructor. Requires a path to the location
    // where the database is located, and a database name
    MyDb::MyDb(std::string &path, std::string &dbName)
    : db_(NULL, 0), // Instantiate Db object
    dbFileName_(path + dbName), // Database file name
    cFlags_(DB_CREATE) // If the database doesn't yet exist,
    // allow it to be created.
    try
    // Redirect debugging information to std::cerr
    db_.set_error_stream( static_cast<std::ostream *>(&std::cerr) );
    // Open the database
    db_.open(NULL, dbFileName_.c_str(), NULL, DB_BTREE, cFlags_, 0);
    // DbException is not a subclass of std::exception, so we
    // need to catch them both.
    catch(DbException &e)
    std::cerr << "Error opening database: " << dbFileName_ << "\n";
    std::cerr << e.what() << std::endl;
    catch(std::exception &e)
    std::cerr << "Error opening database: " << dbFileName_ << "\n";
    std::cerr << e.what() << std::endl;
    //And then we need the implementation for the close() method:
    // Private member used to close a database. Called from the class
    // destructor.
    void
    MyDb::close()
    // Close the db
    try
    db_.close(0);
    std::cout << "Database " << dbFileName_
    << " is closed." << std::endl;
    catch(DbException &e)
    std::cerr << "Error closing database: " << dbFileName_ << "\n";
    std::cerr << e.what() << std::endl;
    catch(std::exception &e)
    std::cerr << "Error closing database: " << dbFileName_ << "\n";
    std::cerr << e.what() << std::endl;
    Thanks
    Anand Rathi
    Edited by: user10127683 on Jun 10, 2009 9:02 AM

    Hi Anand,
    http://www.oracle.com/technology/documentation/berkeley-db/db/ref/build_unix/aix.html <-- check FAQ #4.
    Please use a "-D_LARGE_FILES=1" when building BDB on AIX.
    Let me know how it works.
    Thanks,
    Bogdan Coman

  • Apache cannot start due to libphp5.so undefined symbol: ap_log_rerror_

    I was working on some (non-PHP) Apache configuration, when I went to restart httpd I got the following error:
    Cannot load /etc/httpd/modules/libphp5.so into server: /etc/httpd/modules/libphp5.so: undefined symbol: ap_log_rerror_
    Here is the console output:
    stav@shiva:~$ sudo systemctl restart httpd
    Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
    stav@shiva:~$ sudo systemctl status httpd
    ● httpd.service - Apache Web Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
       Active: failed (Result: exit-code) since Wed 2014-07-02 17:25:29 EDT; 1s ago
      Process: 2675 ExecStart=/usr/bin/apachectl start (code=exited, status=1/FAILURE)
    Jul 02 17:25:29 shiva apachectl[2675]: httpd: Syntax error on line 125 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/libphp5.so into server: /etc/httpd/modules/libphp5.so: undefined symbol: ap_log_rerror_
    Jul 02 17:25:29 shiva systemd[1]: httpd.service: control process exited, code=exited status=1
    Jul 02 17:25:29 shiva systemd[1]: Failed to start Apache Web Server.
    Jul 02 17:25:29 shiva systemd[1]: Unit httpd.service entered failed state.
    I removed all PHP & deps, reinstalled just PHP 5.5 and PHP worked ok.  Then when I installed php-apache and I got the error again. 
    I downgraded to PHP 5.4 and now it works.
    More info:
    stav@shiva:/etc/php$ httpd -v
    Server version: Apache/2.2.26 (Unix)
    Server built:   Mar 13 2014 16:37:13
    stav@shiva:/etc/php$ httpd -l
    Compiled in modules:
      core.c
      prefork.c
      http_core.c
      mod_so.c
    I'm having trouble installing Apache 2.4 so that's why I'm still on 2.2.
    Any ideas how to get PHP 5.5 working?

    As far as I know  php-apache apache module is compiled against Apache2.4 libraries and is not going to work with previous Apache versions.
    You either need to use older version of php-apache module (before Apache2.4 migration) or, highly recommended, move your website to Apache 2.4.

  • Linking Error : Undefined Symbols

    Hi evryone,
    I am facing some Linking error which throws up Undefined Symbol errors like .
    Undefined first referenced
    symbol in file
    vector<DPEEDFU>::insert_aux(DPEEDFU*, const DPEEDFU&) ./obj/dpeesel.o
    I am migrating the code to Sun 5.2 & using -compat=4 for compilation.
    On some analysis using nm , I found that the symbols which are flagged as UNDEFINED are in fact getting defined in the temporary objects created in the SunWS_cache directory.
    Any suggestion on how to resolve this.
    urgent help needed.
    Thanks & Regards
    shiva

    Hi,
    I am running into same(similar) issue. I am using Forte 6 update2. I have created the links manually. I am looking to do dynamic linking of the libCstd. Now,
    here's a snippet of the error I see :
    /import/sunray/tools/WS6u2/SUNWspro/bin/CC -o SunOS.sparc/uttsc SunOS.sparc/main.o SunOS.sparc/platforminfo.o -L../../lib/tscutil/SunOS.sparc -L../../lib/addins/rdpdr/fs/SunOS.sparc -L../../lib/addins/rdpdr/scard/SunOS.sparc -L../../lib/addins/rdpdr/print/SunOS.sparc -L../../lib/addins/rdpdr/serial/SunOS.sparc -L../../lib/addins/rdpdr/SunOS.sparc -L../../lib/enum/SunOS.sparc -L../../lib/addins/cliprdr/SunOS.sparc -L../../lib/audio/SunOS.sparc -L../../lib/aipa/SunOS.sparc -L../../lib/addins/rdpsnd/SunOS.sparc -L../../lib/util/SunOS.sparc -L../../lib/vxrdp/SunOS.sparc -L../../lib/vx/SunOS.sparc -L../../lib/rdp/SunOS.sparc -L../../lib/mcs/SunOS.sparc -L../../lib/isot/SunOS.sparc -L../../lib/common/SunOS.sparc -L../../lib/X11/SunOS.sparc -L../../lib/platform/SunOS.sparc -L../../lib/device/serial/posix/SunOS.sparc -L../../lib/device/fs/posix/SunOS.sparc
    -L../../lib/device/print/lpr/SunOS.sparc -L../../lib/device/SunOS.sparc -L/usr/X11R6/lib -L/usr/openwin/lib -ltscutil --lcommon  -lXext -lX11 -lplatform -lCstd -lcrypto
    Undefined first referenced
    symbol in file
    void std::list<addins::rdpdr::IDeviceService*,std::allocator<addins::rdpdr::IDeviceService*> >::__deallocate_buffers() ../../lib/addins/rdpdr/SunOS.sparc/librdpdr.a(devicemanager.o)
    bind ../../lib/platform/SunOS.sparc/libplatform.a(socket.o) (symbol belongs to implicit dependency /usr/lib/libsocket.so.1)
    std::pair<__rwstd::__rb_tree<unsigned,std::pair<const unsigned,device::serial::Device*>,__rwstd::__select1st<std::pair<const unsigned,device::serial::Device*>,unsigned>,std::less<unsigned>,std::allocator<std::pair<const unsigned,device::serial::Device*> > >::iterator,bool>__rwstd::__rb_tree<unsigned,std::pair<const unsigned,device::serial::Device*>,__rwstd::__select1st<std::pair<const unsigned,device::serial::Device*>,unsigned>,std::less<unsigned>,std::allocator<std::pair<const unsigned,device::serial::Device*> > >::insert(const std::pair<const unsigned,device::serial::Device*>&) ../../lib/addins/rdpdr/serial/SunOS.sparc/librdpdrserial.a(source.o)
    void __rwstd::__rb_tree<unsigned,std::pair<const unsigned,device::fs::Device*>,__rwstd::__select1st<std::pair<const unsigned,device::fs::Device*>,unsigned>,std::less<unsigned>,std::allocator<std::pair<const unsigned,device::fs::Device*> > >::__deallocate_buffers() ../../lib/addins/rdpdr/fs/SunOS.sparc/librdpdrfs.a(rdpdrfssource.o)
    __type_1 std::copy<std::deque<Buffer,std::allocator<Buffer> >::const_iterator,std::back_insert_iterator<std::deque<Buffer,std::allocator<Buffer> > > >(__type_0,__type_0,__type_1) ../../lib/audio/SunOS.sparc/libaudio.a(audiodevsink.o)
    std::list<enumeration::DeviceInfo*,std::allocator<enumeration::DeviceInfo*> >::iterator std::list<enumeration::DeviceInfo*,std::allocator<enumeration::DeviceInfo*> >::erase(std::list<enumeration::DeviceInfo*,std::allocator<enumeration::DeviceInfo*> >::iterator,std::list<enumeration::DeviceInfo*,std::allocator<enumeration::DeviceInfo*> >::iterator) ../../lib/enum/SunOS.sparc/libenum.a(pnpmodule.o)
    ...<many more>...
    How did you resolve your issue ?
    Thanks
    Sangeeta

  • SINGLE TASK 프로그램 LINK 시 UNDEFINED SYMBOL 에러

    제품 : ORACLE SERVER
    작성날짜 : 1997-08-27
    Oracle V7.2, V7.3 에서 Single Task 프로그램인 expst, impst, sqlldrst 를 링크할 때 Undefined Symbol이 떨어지면서 실패하는 경우에는 make 화일을 수정하면 된다.
    V7.2에서는 $ORACLE_HOME/rdbms/lib/oracle.mk
    V7.3에서는 $ORACLE_HOME/rdbms/lib/ins_rdbms.mk
    를 열어서 다음과 같이 수정하도록 한다. 즉, 맨 뒤에 나오는 STLIBS를 TTLIBS로 바꾸면 된다. 아래의 경우는 V7.3의 경우이고 V7.2에서는 $(LIBEXP)가 맨 처음에 나오는 등 약간 차이점이 있지만 해결 방법은 동일하다. STLIBS를 TTLIBS로 바꾸면 된다.
    <수정하기 전>
    expst: exudrv.o $(LIBEXP) $(LIBORASTD) $(CONFIG) $(PSOLIBLIST)
    @$(ECHO) $(LINK) -o $@ $(LDFLAGS) exudrv.o -lexp $(STLIBS)
    impst: impdrv.o $(LIBIMP) $(LIBORASTD) $(CONFIG) $(PSOLIBLIST)
    @$(ECHO) $(LINK) -o $@ $(LDFLAGS) impdrv.o -limp $(STLIBS)
    sqlldrst: ulmai.o $(LIBUL) $(LIBORASTD) $(LIBCLIENT) $(CONFIG) $(PSOLIBLIST) @$(ECHO) $(LINK) -o $@ $(LDFLAGS) ulmai.o $(LIBCLIENT) $(STLIBS)
    <수정 후>
    expst: exudrv.o $(LIBEXP) $(LIBORASTD) $(CONFIG) $(PSOLIBLIST)
    @$(ECHO) $(LINK) -o $@ $(LDFLAGS) exudrv.o -lexp $(TTLIBS)
    impst: impdrv.o $(LIBIMP) $(LIBORASTD) $(CONFIG) $(PSOLIBLIST)
    @$(ECHO) $(LINK) -o $@ $(LDFLAGS) impdrv.o -limp $(TTLIBS)
    sqlldrst: ulmai.o $(LIBUL) $(LIBORASTD) $(LIBCLIENT) $(CONFIG) $(PSOLIBLIST) @$(ECHO) $(LINK) -o $@ $(LDFLAGS) ulmai.o
    $(LIBCLIENT) $(TTLIBS)

  • Undefined Symbols when using Workshop 6 update 1

    When trying to build my executable , I get undefined symbols
    START and END in crti.o
    The error message is
    Undefined Symbol "_START_"
    First reference is from /opt/SUNWspro/WS6U1/lib/crti.o
    I am working on WS 6U1 on solaris 5.8
    I have all standard & WS Libraries in LD_LIBRARY_PATH
    Any ideas greatly appreciated as I need to get this resolved quickly ..

    Your program is not correctly linked with a runtime.
    How did you compile it? Is this a first trial with
    a newly installed compiler? Had you compiled other
    programs correctly?

  • Usbser_edge module not loaded, lots of undefined symbols

    Greetings folks,
    I've just recently more or less completed my Solaris 10 (sparc) jumpstart image and have noticed that upon booting the system will warn about undefined symbols for the usbser_edge module. I've been hunting around and I can't seem to find out where this module is specified to be loaded. The machine in question is a 220R, and I'd like to figure out how to not load this module so the warnings will go away:
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/misc/sparcv9/usbser: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_dprintf0'
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/misc/sparcv9/usbser: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_dprintf1'
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/misc/sparcv9/usbser: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_dprintf2'
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/misc/sparcv9/usbser: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_free_log_hdl'
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/misc/sparcv9/usbser: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_alloc_log_hdl'
    Sep 9 09:33:25 jump-test krtld: [ID 472681 kern.notice] WARNING: mod_load: cannot load module 'usbser'
    Sep 9 09:33:25 jump-test krtld: [ID 749970 kern.notice] WARNING: usbser:
    Sep 9 09:33:25 jump-test krtld: [ID 225575 kern.notice] unable to resolve dependency, module 'misc/usba' not found
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_lookup_ep_data'
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_parse_data'
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_dprintf0'
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:25 jump-test krtld: [ID 826211 kern.notice] 'usb_dprintf2'
    Sep 9 09:33:25 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_ctrl_xfer_wait'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usbser_close'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usbser_power'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_sync_ctrl_xfer'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_alloc_intr_req'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usbser_getinfo'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_close'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_unregister_event_cbs'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_reset'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_bulk_xfer'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_free_bulk_req'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_register_event_cbs'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_free_intr_req'
    Sep 9 09:33:26 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:26 jump-test krtld: [ID 826211 kern.notice] 'usb_free_log_hdl'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_stop_intr_polling'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usbser_attach'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usbser_detach'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usb_get_dev_data'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_open'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usb_alloc_log_hdl'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usbser_rsrv'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usbser_wsrv'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usbser_wput'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usbser_open'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usb_check_same_device'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_intr_xfer'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usb_create_pm_components'
    Sep 9 09:33:27 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:27 jump-test krtld: [ID 826211 kern.notice] 'usb_free_descr_tree'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_set_device_pwrlvl0'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_set_device_pwrlvl1'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_set_device_pwrlvl2'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_set_device_pwrlvl3'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_pipe_get_max_bulk_transfer_size'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usbser_soft_state_size'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_alloc_bulk_req'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_handle_remote_wakeup'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_client_attach'
    Sep 9 09:33:28 jump-test krtld: [ID 819705 kern.notice] /kernel/drv/sparcv9/usbser_edge: undefined symbol
    Sep 9 09:33:28 jump-test krtld: [ID 826211 kern.notice] 'usb_client_detach'
    Sep 9 09:33:28 jump-test krtld: [ID 472681 kern.notice] WARNING: mod_load: cannot load module 'usbser_edge'
    Sep 9 09:33:28 jump-test krtld: [ID 749970 kern.notice] WARNING: usbser_edge:
    Sep 9 09:33:28 jump-test krtld: [ID 225575 kern.notice] unable to resolve dependency, module 'misc/usba' not found
    Thanks in advance for any advice anyone can provide.
    pb

    I just attempted a generic search at Sunsolve, for "usbser_edge".
    It produced references to a lot of documents available after contract login to the site.
    If you have a Spectrum login account, get to BugID 4703982.
    It's from 2003 or so...
    but it discusses the SUNWuedg package being incorrectly installed,
    on beta versions of Sol-10, to an E250 and to a SB1000.
    Other search result references to various BugID's also happened to discuss
    removing references to the driver in the /etc/name_to_major file
    as well as in the /etc/driver_aliases file.
    See BugID 4790469 or BugID 5045102
    I don't trust my skill level with mucking around with such files, however.
    If you have contract coverage for the OS or for that system, open a support case.
    If not, then see if the SUNWuedg package is installed and remove it.
    Then a reconfiguration reboot may be in order.
    What the heck, try a reconfiguration reboot just for grins and giggles.
    ... just my two cents, at least.

  • Undefined symbol referenced in -n command line argument

    I am migrating from CC 4.2 to CC 6.0 and cannot determine what is causing the following error during/after linking:
    ild: (undefined symbol) void __Cimpl::cplus_init() -- referenced in -u command line argumentAll of the .o files are produced without error and a binary is produced, but without execute permissions. I read the C++ Migration Guide and have checked to be sure that all of my compile commands include -library=iostream and -compat=4.
    What can I check next?

    There is no C++ 6.0. Run the command
    CC -V
    to find out your compiler version.
    The -library=iostream option is for use only in the default standard mode. To build a compatibility-mode program, use the option
    -compat=4
    on every CC command line, compiling and linking. Do not use -library=iostream.
    I reccomend the following sequence for migrating from C++ 4.2 to a recent Sun C++ compiler:
    1. Build the entire program using -compat=4. Using the Migration Guide as a reference, fix the code to eliminate all warnings.
    2. Remove the -compat=4 option, and add the option
    -library=iostream,no%Cstd
    to every CC command line, compiling and linking. Fix all errors and fix the code to eliminate all warnings.
    3. Check the Migration Guide for language definition changes, such as the behavior of new-expressions and the scope of variables defined in the header of a for-statement. You can use -features=xxx options to restore the old compiler behavior, but I recommend fixing the code instead.
    4. Try building without the -library=iostream,no%Cstd option. Your code will then use standard iostreams instead of "classic" iostreams. Simple uses of iostreams will work either way. Some uses of iostreams need to be modified to work with standard iostreams. If your code doesn't work as-is, schedule a time to convert to standard iostreams. Using classic iostreams can interfere with the use of the rest of the C++ standard library.

  • Missing prototype and Undefined Symbol errors

    So, I am using an Opal Keyy XEM3005 board.
    Depending on the documentation I read, this board has a native ANSI C interface with a C++ wrapper.
    In their forums, they say to rename the ".cpp" file to "c", and then go forward with calling the default constructor & keep track of the pointer.  Their functions are all in an externally loadable DLL.
    Well and good.
    Their API documentatin is available here:  http://www.opalkelly.com/library/FrontPanelAPI/
    I have written a REALLY simple app to ease my way in - it does nothing more than allow the user to throw a switch, and when this happens, it goes off to connect to the board:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #include <cvirte.h>
    #include <userint.h>
    #include "Try1.h"
    #include "XEM.h"
    #define _WIN32_WINNT 0x0501
    //#define _WIN32
    #include <windows.h>
    static int panelHandle;
    static okFrontPanel_HANDLE    XEM_Device;
    int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpszCmdLine, int nCmdShow)
    if (InitCVIRTE (hInstance, 0, 0) == 0)
    return -1;    /* out of memory */
    if ((panelHandle = LoadPanel (0, "Try1.uir", PANEL)) < 0)
            return -1;
        DisplayPanel (panelHandle);
        RunUserInterface ();
        DiscardPanel (panelHandle);
        return 0;
    int CVICALLBACK Connect (int panel, int control, int event,
            void *callbackData, int eventData1, int eventData2)
        int    Value = 0;
        switch (event)
            case EVENT_COMMIT:
                GetCtrlVal(PANEL, PANEL_CONNECT_SWITCH, &Value);
                SetCtrlVal(PANEL, PANEL_CONNECT_LED, Value);
                if( Value )
                    XEM_Connect(XEM_Device);
                else
                    XEM_Disconnect(XEM_Device);
                break;
        return 0;
    int CVICALLBACK Quit (int panel, int control, int event,
            void *callbackData, int eventData1, int eventData2)
        switch (event)
            case EVENT_COMMIT:
                QuitUserInterface (0);
                break;
        return 0;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    This, of course, works fine by itself (with empty _Connect() and _Disconnect() functions)
    I then started working with the XEM_Connect function.
    The first step is to run their LoadDLL function as such:
    int XEM_Connect ( okFrontPanel_HANDLE    XEM_Device )
        int    NoDevices = 0;    //    Number of devices attached to the PC
        //    Load the DLL (?)
        // Load the FrontPanel DLL
        if (FALSE == okFrontPanelDLL_LoadLib(NULL))
            printf("Could not load FrontPanel DLL\n");
            exit(-1);
        return XEM_SUCCESS;
    And this would compile and run just fine.
    Now, when I added the functions to start trying to get info about the device, I started getting "missing prototype" errors.
    int XEM_Connect ( okFrontPanel_HANDLE    XEM_Device )
        int    NoDevices = 0;    //    Number of devices attached to the PC
        //    Load the DLL (?)
        // Load the FrontPanel DLL
        if (FALSE == okFrontPanelDLL_LoadLib(NULL))
            printf("Could not load FrontPanel DLL\n");
            exit(-1);
        //    Find out how many devices are attached
        XEM_Device = okFrontPanel_Construct(  );
    //    XEM_Device = okCFrontPanel( void );
    //    NoDevices = GetDeviceCount( );
        printf("%d OK devices attached\n", NoDevices);
        //    Call the contructor?    
    //    okCFrontPanel ();
        return XEM_SUCCESS;
    Now, I searched the forums and found the bits about adding #define _WIN32_WINNT 0x0501 prior to inclusion of windows.h.  Did that.  No joy.
    Then I searched some more and found the bit about changing the build options to uncheck the "prototype required" flag.
    Done.
    This seemed to work at first (the above code could be built with no errors, and appeared to run).
    So I thought maybe I had it, and added the next line, so:
    int XEM_Connect ( okFrontPanel_HANDLE    XEM_Device )
        int    NoDevices = 0;    //    Number of devices attached to the PC
        //    Load the DLL (?)
        // Load the FrontPanel DLL
        if (FALSE == okFrontPanelDLL_LoadLib(NULL))
            printf("Could not load FrontPanel DLL\n");
            exit(-1);
        //    Find out how many devices are attached
        XEM_Device = okFrontPanel_Construct(  );
        OpenBySerial( XEM_Device, "UaLgzvVpBJ" );
    //    XEM_Device = okCFrontPanel( void );
    //    NoDevices = GetDeviceCount( );
        printf("%d OK devices attached\n", NoDevices);
        //    Call the contructor?    
    //    okCFrontPanel ();
        return XEM_SUCCESS;
    Now it doesn't complain about no prototypes (duh), but instead I get linker errors:
        Undefined symbol '_OpenBySerial@0' referenced in "XEM.c".
    So, dredging through the .h and .c files, I found a couple of things:
    in the okFrontPanel.c file I found the following:
    okDLLEXPORT ok_ErrorCode DLL_ENTRY
    okFrontPanel_OpenBySerial(okFrontPanel_HANDLE hnd, const char *serial)
        if (_okFrontPanel_OpenBySerial)
    ;  return((*_okFrontPanel_OpenBySerial)(hnd, serial));
        return(ok_UnsupportedFeature);
    In the okFrontPanel.h file I found:
    and also:
    okDLLEXPORT ok_ErrorCode DLL_ENTRY okFrontPanel_OpenBySerial(okFrontPanel_HANDLE hnd, const char *serial);
    So, I see them in the .h & .c files, but the linker is bombing out.
    I smell a problem with actual code to link being in the DLL...  How do I resolve this, any ideas?  Or am I doing something so stupidly (and obviously) wrong that I'm being blinded to it?

    Hi tomii,
    My suspicion is that these issues are due to using a C++ dll in a C environment. There are inherent challenges with performing such an operation as you have to make sure all your parameters and settings are correct.
    I also could not find the documentation that the Opal Kelly dll is ANSI C but it sounds like you can use this in C with some reconfiguration. I would recommend using their forums to get more information on what steps need to take place to get things working in ANSI C.
    From the information you provided, I did find some resources on the missing prototype error and undefined symbol issue with the linker.
    For the missing prototype I found a thread of someone actually using LabWindows and seeing this compiler error you may want to look at
    http://bytes.com/topic/c/answers/695019-missing-prototype
    I found a few cases where using a function definition of int func(void) removes such issue when int func() does not.
    Another link I found that may be worth a look can be found at http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html
    It gives some good pointers to mixing C and C++ code. Some of it may be applicible in your case.
    And, a resource for your undefined symbol linking issue.
    http://www.cprogramming.com/tutorial/compiler_linker_errors.html
    Hopefully these resources will give some context for getting things compiling and working with your dll.
    Good luck!
    James W.
    Applications Engineer
    National Instruments

  • "undefined symbol" error while using a custom instrument driver

    Hello all, I'm facing a problem related to instrument driver creation.
    I want to pack a part of my code to a .FP to be able to reuse it in other applications of mine. This part of code includes calls to Windows API and a third party dll. I have included both windows.h and the include for the dll in the header file for the instrument. I developed the source code and next a little application that simply calls one function to test the result of my work, but I get some 'undefined symbol' errores while linking the test application with the instrument. The instrument header file is included in program source file.
    Situation is as follows:
    I can run the test application if I include the source file for the instrument directly in the project (without loading the instrument)
    I created a static library and can have the test program up and running if directly including the library in the project (again without the .fp file)
    I get linker errors when trying to use the instrument I created based on the same code, both when including the instrument at source code level and when including at library level. Adding the .fp to the project makes no difference
    Linker errors are all related to WinSDK and third-party dll functions.
    Question is: where and how I have to declare the symbols apart including the appropriate .h files in the instrument header file?
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

    Being waited on to log on... how flattering
    I wish I had a simple and obvious solution, but I don't.
    The problem in this case is that, whereas DLLs (via their import libraries) carry no additional build-time dependencies to their clients, that is not the case with object files and static libraries: any project that uses those .obj and .lib files must satisfy all of their dependencies when that project builds.
    There is a mechanism, with .fp files, to advertise such dependencies to the clients of the .fp, and that is the auto-load list (Edit>>FP Auto-Load List, in the function tree editor). The caveat, however, is that these indirect dependencies must have a companion .fp that you can add to this list. And in your case, you don't have one. So the only solution I can think of is for you to create a very thin wrapper module where you would wrap all of the SDK functions that you need, then create a basic .fp for this wrapper -- you can do this semi-automatically, from the header file (Options>>Generate Function Tree) -- and then add this .fp to the auto-load list of your primary .fp. And then you'll probably have to create a second .fp wrapper for your other dependency (a non-SDK third-party DLL?).
    Once you have declared the dependency chain for this .fp, you should then be able to use it on any test application and CVI should know to link in these additional static libraries whenever it builds the test application.
    If you choose to go this route, you'll probably have to deal with a bunch of non-standard data types in the parameters of the SDK functions. I don't remember if these are automatically added to the .fp when you create it from the header file. If not, all you need to do is add them to the .fp  later (Options>>Data Types, from the function panel editor). Don't worry about providing the definitions for these data types. They're not necessary. You just need to make sure that their names are in the list.
    Luis
    Message Edited by LuisG on 05-19-2010 10:43 AM

  • Libboost_python.so has tons of undefined symbols

    I've been trying to get Luxrender to work with Blender 2.63. The pylux.so module never loaded for some reason, so I traced the problem back to the libboost_python.so file and it seems to be throwing a ton of undefined symbol errors, all of them mentioning Python:
    blender ~ $ ldd -r /usr/lib/libboost_python.so
    linux-vdso.so.1 => (0x00007fffa14a8000)
    libutil.so.1 => /lib/libutil.so.1 (0x00007fd6c993c000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007fd6c9720000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007fd6c951b000)
    librt.so.1 => /lib/librt.so.1 (0x00007fd6c9313000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fd6c900f000)
    libm.so.6 => /lib/libm.so.6 (0x00007fd6c8d19000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fd6c8b04000)
    libc.so.6 => /lib/libc.so.6 (0x00007fd6c8763000)
    /lib/ld-linux-x86-64.so.2 (0x00007fd6c9dc3000)
    undefined symbol: PyExc_ImportError (/usr/lib/libboost_python.so)
    undefined symbol: PyProperty_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyExc_StopIteration (/usr/lib/libboost_python.so)
    undefined symbol: PyBool_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyClass_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyExc_ValueError (/usr/lib/libboost_python.so)
    undefined symbol: PyList_Type (/usr/lib/libboost_python.so)
    undefined symbol: _Py_NotImplementedStruct (/usr/lib/libboost_python.so)
    undefined symbol: PyExc_TypeError (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyInt_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyComplex_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyExc_ReferenceError (/usr/lib/libboost_python.so)
    undefined symbol: PyModule_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyBaseObject_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyFloat_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyExc_IndexError (/usr/lib/libboost_python.so)
    undefined symbol: PyUnicode_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyTuple_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyExc_RuntimeError (/usr/lib/libboost_python.so)
    undefined symbol: PyType_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyMethod_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyStaticMethod_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyLong_Type (/usr/lib/libboost_python.so)
    undefined symbol: _Py_NoneStruct (/usr/lib/libboost_python.so)
    undefined symbol: PyExc_OverflowError (/usr/lib/libboost_python.so)
    undefined symbol: PyExc_AttributeError (/usr/lib/libboost_python.so)
    undefined symbol: PyCFunction_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyString_Type (/usr/lib/libboost_python.so)
    undefined symbol: PyType_GenericAlloc (/usr/lib/libboost_python.so)
    undefined symbol: PyList_Insert (/usr/lib/libboost_python.so)
    undefined symbol: PyString_InternFromString (/usr/lib/libboost_python.so)
    undefined symbol: PyString_AsString (/usr/lib/libboost_python.so)
    undefined symbol: PyUnicodeUCS4_FromEncodedObject (/usr/lib/libboost_python.so)
    undefined symbol: PyImport_Import (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceRshift (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_CallMethod (/usr/lib/libboost_python.so)
    undefined symbol: PyIter_Next (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Remainder (/usr/lib/libboost_python.so)
    undefined symbol: Py_InitModule4_64 (/usr/lib/libboost_python.so)
    undefined symbol: PyType_Ready (/usr/lib/libboost_python.so)
    undefined symbol: _PyEval_SliceIndex (/usr/lib/libboost_python.so)
    undefined symbol: PyFile_AsFile (/usr/lib/libboost_python.so)
    undefined symbol: PyLong_FromUnsignedLong (/usr/lib/libboost_python.so)
    undefined symbol: PyMem_Free (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceXor (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceOr (/usr/lib/libboost_python.so)
    undefined symbol: PyBool_FromLong (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_Items (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceRemainder (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_NoMemory (/usr/lib/libboost_python.so)
    undefined symbol: PyComplex_ImagAsDouble (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_IsTrue (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Lshift (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceMultiply (/usr/lib/libboost_python.so)
    undefined symbol: _PyObject_New (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_GetItem (/usr/lib/libboost_python.so)
    undefined symbol: PyString_FromStringAndSize (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceLshift (/usr/lib/libboost_python.so)
    undefined symbol: PyString_Size (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_Update (/usr/lib/libboost_python.so)
    undefined symbol: PyComplex_RealAsDouble (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_Format (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_And (/usr/lib/libboost_python.so)
    undefined symbol: PyUnicodeUCS4_AsWideChar (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceAdd (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_GetAttr (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_ExceptionMatches (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_Occurred (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_Copy (/usr/lib/libboost_python.so)
    undefined symbol: PyArg_ParseTupleAndKeywords (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Divide (/usr/lib/libboost_python.so)
    undefined symbol: PyEval_GetGlobals (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_Keys (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_SetObject (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Multiply (/usr/lib/libboost_python.so)
    undefined symbol: PyRun_FileExFlags (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_Size (/usr/lib/libboost_python.so)
    undefined symbol: PyString_FromString (/usr/lib/libboost_python.so)
    undefined symbol: PyString_FromFormat (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceAnd (/usr/lib/libboost_python.so)
    undefined symbol: PyInt_FromLong (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_Size (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_GetItem (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_SetItem (/usr/lib/libboost_python.so)
    undefined symbol: PyInt_AsLong (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_RichCompare (/usr/lib/libboost_python.so)
    undefined symbol: PyCFunction_NewEx (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_Values (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Rshift (/usr/lib/libboost_python.so)
    undefined symbol: PyStaticMethod_New (/usr/lib/libboost_python.so)
    undefined symbol: PyType_IsSubtype (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Add (/usr/lib/libboost_python.so)
    undefined symbol: PyList_Sort (/usr/lib/libboost_python.so)
    undefined symbol: PySequence_DelSlice (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_WarnEx (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Xor (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_ClearWeakRefs (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Subtract (/usr/lib/libboost_python.so)
    undefined symbol: PySlice_New (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_GetAttrString (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_IsInstance (/usr/lib/libboost_python.so)
    undefined symbol: PyRun_StringFlags (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_SetAttrString (/usr/lib/libboost_python.so)
    undefined symbol: PyWeakref_NewRef (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_NewException (/usr/lib/libboost_python.so)
    undefined symbol: PyList_Append (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_SetAttr (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_GetItemString (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceDivide (/usr/lib/libboost_python.so)
    undefined symbol: PyLong_AsLongLong (/usr/lib/libboost_python.so)
    undefined symbol: PyLong_AsUnsignedLongLong (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_Or (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_DelItem (/usr/lib/libboost_python.so)
    undefined symbol: PyNumber_InPlaceSubtract (/usr/lib/libboost_python.so)
    undefined symbol: PyMethod_New (/usr/lib/libboost_python.so)
    undefined symbol: PyEval_CallFunction (/usr/lib/libboost_python.so)
    undefined symbol: PySequence_GetSlice (/usr/lib/libboost_python.so)
    undefined symbol: PyTuple_Size (/usr/lib/libboost_python.so)
    undefined symbol: PyImport_ImportModule (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_Clear (/usr/lib/libboost_python.so)
    undefined symbol: PyTuple_New (/usr/lib/libboost_python.so)
    undefined symbol: PyTuple_GetItem (/usr/lib/libboost_python.so)
    undefined symbol: PyErr_SetString (/usr/lib/libboost_python.so)
    undefined symbol: PyObject_CallFunction (/usr/lib/libboost_python.so)
    undefined symbol: PyList_Reverse (/usr/lib/libboost_python.so)
    undefined symbol: PyFile_FromString (/usr/lib/libboost_python.so)
    undefined symbol: _PyType_Lookup (/usr/lib/libboost_python.so)
    undefined symbol: PyList_New (/usr/lib/libboost_python.so)
    undefined symbol: PyMem_Malloc (/usr/lib/libboost_python.so)
    undefined symbol: PyCallable_Check (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_Clear (/usr/lib/libboost_python.so)
    undefined symbol: PySequence_SetSlice (/usr/lib/libboost_python.so)
    undefined symbol: PyLong_AsUnsignedLong (/usr/lib/libboost_python.so)
    undefined symbol: PyDict_New (/usr/lib/libboost_python.so)
    I'm not entirely sure what the problem is. There was a bug report filed for the exact same problem a few years ago and it was taken upstream to the boost developers (and later fixed), but I can't understand how the problem was actually solved except for a single patch.
    Does anyone know what these errors mean and what I can do to fix things?

    @sand_man about vegastrike-svn, i remember i've look at it at some point and a discussion was in arch-general about it. that application has multiple versions of boost.
    http://permalink.gmane.org/gmane.linux. … eral/32489
    also i think that  vegastrike-svn building system needs to add a proper flag for linking, like passing -lpython2.7 or -lpython3, depending of what is using
    Last edited by wonder (2011-03-04 10:00:14)

Maybe you are looking for

  • Help needed in creating easy flash photo menu

    First hello to all of you And greetings from Poland Could somebody help me or give me a guide, maybe a tutorial how to create an easy flash photo menu in AS3 or 2. Let me explain what I want to do this is my image menu done i PSD is my image menu don

  • How to connect to pc?

    Im trying to figure out how to connect my macbook to my pc to transfer files. Ive directly connected them to each other with a standard ethernet cable and nothing. When I go to Go>Connect to Server my pc will not show up, even when I type in its IP A

  • One Input File Multiple output files.

    Hi, How to Generate Multiple Output (Target) files by using Single (Source File) Input file in File 2 File Scenario. Please help me to do this. With Regards, Mahesh

  • How does one make a PLAF

    I understand that to make a custom LAF, all you need to do is extend one of the standard LAFs, but how do you describe how things are to look (and feel)? What I mean is if you want you text fields to have rounded corners, how do you go about having i

  • Best code

    I was wondering what state of mind you guys like to be in when you write code. I personally feel I write the best code after I've had about 10 or so of my favorite alcoholic beverages, any more or any less I'm not as effective. How about you?