Overview
Features
Download
Documentation
Community
Add-Ons & Services

Linker errors with 1.3.3 on i386 Mac OS X

Please post support and help requests here.

Linker errors with 1.3.3 on i386 Mac OS X

Postby Lodger » 19 Nov 2008, 12:24

Hi guys,

I'm getting a number of linker errors when I attempt to use Poco 1.3.3 as static libraries on Mac OS X 10.5.5. My final binary will be universal so I have built Poco on both PPC and i386 based Macs and used lipo to create a fat files. The linker errors below would occur when linking the i386 binaries, but the PPC binaries would link fine. I have also tried changing my build options to only target i386 and used simple i386 poco libraries, but still get the same result. However if I check out the 1.3.2 branch and link against that, everything builds perfectly, something broken between 1.3.3 & 1.3.2 maybe?

Linker errors:

Code: Select all

Undefined symbols:
  "_pthread_rwlock_destroy$UNIX2003", referenced from:
      Poco::RWLockImpl::~RWLockImpl()in libPocoFoundation.a(RWLock.o)
  "_stat64", referenced from:
      Poco::FileImpl::createdImpl() constin libPocoFoundation.a(File.o)
  "_open$UNIX2003", referenced from:
      Poco::FileImpl::createFileImpl()     in libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileStreamBuf::open(std::basic_string, std::allocator > const&, std::_Ios_Openmode)in libPocoFoundation.a(FileStream.o)
  "_write$UNIX2003", referenced from:
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileStreamBuf::writeToDevice(char const*, int)in libPocoFoundation.a(FileStream.o)
  "_strerror$UNIX2003", referenced from:
      Poco::FileImpl::handleLastErrorImpl(std::basic_string, std::allocator > const&)in libPocoFoundation.a(File.o)
  "_pthread_rwlock_wrlock$UNIX2003", referenced from:
      Poco::RWLockImpl::writeLockImpl()      in libPocoFoundation.a(TextEncoding.o)
  "_pthread_mutexattr_destroy$UNIX2003", referenced from:
      Poco::MutexImpl::MutexImpl(bool)in libPocoFoundation.a(Mutex.o)
      Poco::MutexImpl::MutexImpl(bool)in libPocoFoundation.a(Mutex.o)
      Poco::MutexImpl::MutexImpl()in libPocoFoundation.a(Mutex.o)
      Poco::MutexImpl::MutexImpl()in libPocoFoundation.a(Mutex.o)
  "_close$UNIX2003", referenced from:
      Poco::FileImpl::createFileImpl()     in libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileStreamBuf::close()     in libPocoFoundation.a(FileStream.o)
  "_pthread_rwlock_rdlock$UNIX2003", referenced from:
      Poco::RWLockImpl::readLockImpl()      in libPocoFoundation.a(TextEncoding.o)
  "_pthread_rwlock_init$UNIX2003", referenced from:
      Poco::RWLockImpl::RWLockImpl()in libPocoFoundation.a(RWLock.o)
  "_read$UNIX2003", referenced from:
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
      Poco::FileStreamBuf::readFromDevice(char*, int)in libPocoFoundation.a(FileStream.o)
  "_select$UNIX2003", referenced from:
      Poco::MutexImpl::tryLockImpl(long) in libPocoFoundation.a(Mutex.o)
  "_chmod$UNIX2003", referenced from:
      Poco::FileImpl::setExecutableImpl(bool) in libPocoFoundation.a(File.o)
      Poco::FileImpl::setWriteableImpl(bool) in libPocoFoundation.a(File.o)
  "_fsync$UNIX2003", referenced from:
      Poco::FileImpl::copyToImpl(std::basic_string, std::allocator > const&) constin libPocoFoundation.a(File.o)
  "_pthread_rwlock_unlock$UNIX2003", referenced from:
      Poco::RWLockImpl::unlockImpl()      in libPocoFoundation.a(TextEncoding.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Lodger
 
Posts: 2
Joined: 10 Jan 2008, 22:39

Re: Linker errors with 1.3.3 on i386 Mac OS X

Postby Lodger » 08 Dec 2008, 18:51

*Bump*

Anyone got any ideas for this? Should I be reporting this as a bug?

I've just checked out the latest revision (1006) of the 1.3.3 branch and I'm still unable to link to Poco as static libraries due to the errors above.

I do have a version of 1.3.2 that does link correctly, however I have found that when I check the 1.3.2 branch out, the configure script, and I presume a bunch of other files do not have executable attributes.

Any suggestions guys n gals?

Cheers

--L
Lodger
 
Posts: 2
Joined: 10 Jan 2008, 22:39

Re: Re: Linker errors with 1.3.3 on i386 Mac OS X

Postby alex » 08 Dec 2008, 19:04

> Should I be reporting this as a bug?

That's probably the best thing to do.
alex
 
Posts: 1130
Joined: 11 Jul 2006, 16:27
Location: United_States


Return to Support

Who is online

Users browsing this forum: No registered users and 1 guest

cron