Hi.

You shouldn't build DT with non-system C++ compiler because you have to
link to system libstdc++ (build system tries to make sure that you're
linking against /usr/lib/libstdc++.dylib, not any other, that's why
you're seeing this error). You can however use GCC from macports as C
compiler, set CC=gcc-mp-4.6 and don't touch CXX.

On Tue, 5 Feb 2013 10:39:16 +0100
Jeroen Hegeman <[email protected]> wrote:

> Dear DT'ers,
> 
> This is probably something related to my system, not to Darktable itself, but 
> I'm hoping to find someone here who has seen this before (or knows how to dig 
> further).
> 
> I'm trying to build Darktable from the Git master, on OS X 10.7.5 with a 
> MacPorts install of GCC 4.6.3.
> However, linking of libdarktable.dylib fails with the following complaint:
> 
> > Linking C shared library libdarktable.dylib
> > Undefined symbols for architecture x86_64:
> >   "std::ctype<char>::_M_widen_init() const", referenced from:
> >       LibRaw_file_datastream::gets(char*, int) in 
> > liblibraw_r.a(libraw_datastream.cpp.o)
> > ld: symbol(s) not found for architecture x86_64
> > collect2: ld returned 1 exit status
> 
> Now gcc -v tells me that it's configured with '--libdir=/opt/local/lib/gcc46' 
> and both /opt/local/lib/gcc46/libstdc++.6.dylib and 
> /opt/local/lib/gcc46/libstdc++.dylib are symlinks to 
> /opt/local/lib/libstdc++.6.dylib. And this appears to be a 64-bit lib, with 
> the required symbol in there:
> 
> > $ file /opt/local/lib/libstdc++.6.dylib
> > /opt/local/lib/libstdc++.6.dylib: Mach-O 64-bit dynamically linked shared 
> > library
> > 
> > $ nm /opt/local/lib/libstdc++.6.dylib | grep -i wide | c++filt
> > 00000000000169a0 T std::ctype<char>::_M_widen_init() const
> > 0000000000042470 t std::ctype<char>::widen(char const*, char const*, char*) 
> > const
> > 0000000000042450 t std::ctype<char>::widen(char) const
> > 00000000000312e0 t __ZNKSt5ctypeIcE5widenEc.part.24
> > 0000000000016e90 t std::ctype<char>::do_widen(char const*, char const*, 
> > char*) const
> > 0000000000016e00 t std::ctype<char>::do_widen(char) const
> > 00000000000259a0 T std::ctype<wchar_t>::do_widen(char const*, char const*, 
> > wchar_t*) const
> > 0000000000025990 T std::ctype<wchar_t>::do_widen(char) const
> > 0000000000028fb0 T std::basic_ios<char, std::char_traits<char> 
> > >::widen(char) const
> > 00000000000298d0 T std::basic_ios<wchar_t, std::char_traits<wchar_t> 
> > >::widen(char) const
> 
> This probably means I'm not searching in the same place as the linker. Does 
> anybody know what I'm doing wrong here? Or how to investigate further?
> 
> Any hints would be appreciated!
> 
> Best regards,
> Jeroen
> ------------------------------------------------------------------------------
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013 
> and get the hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb
> _______________________________________________
> Darktable-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/darktable-users

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Darktable-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/darktable-users

Reply via email to