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
