On Wed, 7 Dec 2016, simone wrote: > The problem is that, when compiling and linking the attached package, I > get the following error: > > undefined reference to `libMesh::Edge2::connectivity(unsigned int, > libMesh::IOPackage, std::vector<unsigned int, std::allocator<unsigned > int> >&) const' > collect2: error: ld returned 1 exit status > > the problem does not occur replacing the -lmesh_dbg with -lmesh_opt > linking option; this is actually preventing me to use libmesh in debug > mode. > > Any clue?
libmesh_dbg.so is by default compiled using GNU libstdc++ debugging flags when you're using GCC: https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_using.html#debug_mode.using.mode "Note that this flag changes the sizes and behavior of standard class templates such as std::vector, and therefore you can only link code compiled with debug mode and code compiled without debug mode if no instantiation of a container is passed between the two translation units." In other words, there's no reference defined in libmesh_dbg.so to anything like some_libmesh_function(std::vector); in each case there is instead a corresponding reference defined to some_libmesh_function(__gnu_debug::vector). If you don't compile every part of your program with the same dbg flags, then at some point your code (or our inlined code) wants to call the std::vector functions, the library only defines the __gnu_debug::vector functions, and the latter aren't recognized as (or usable as) replacements for the former. Compile your application code with the same flags (e.g. by evaluating $(libmesh_config --cppflags --cxxflags) and using the result in your build system) and you should be fine. If this isn't possible, the best you can do is to use devel mode or to disable the ABI-changing flags with "configure --disable-glibcxx-debugging" --- Roy ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today.http://sdm.link/xeonphi _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
