I have a C program that uses a library which internally uses C++, but exposes a C API. I have a user who experiences linking problems about missing standard C++ stuff, fixed by using "g++" to link. I am looking for help in understanding this and what the correct solution is.
This has been discussed before on this list [1] and solutions given. I could build a dummy.cc to force C++ linking, I could use my own program_LINK, or I could do some magic with setting CCLD or similar. I have a few questions, please let me know if there is a better forum for them: 1. Why does my program need to be linked with a C++ compiler in some cases and not in others? Shared libraries should bring in their own dependencies, or libtool should find them, no? Is something broken with how the library is built? 2. I use libtool (but I do not understand why I use it). Is the following correct for my program_LINK command if I use libtool: program_LINK = $(LIBTOOL) --mode=link $(CXX) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ 3. Who defines CXXLD and how? I have seen this variable referenced, it looks like I should use it above (to match CCLD), but nothing seems to define it. Is it obsolete? Thanks for your help, -Billy [1] http://mail.gnu.org/archive/html/automake/2002-11/msg00046.html