在mac上编译出现类似 clang error
http://stackoverflow.com/questions/25020140/undefined-symbols-for-architecture-x86-64-mavericks-yosemite-el-capitan
All the issues I had, that were giving
Undefined symbols for architecture x86_64
were due to the fact that some libraries were compiled with libstdc++ and could not be used for code that is compiled/linked with libc++
libc++ is in fact the default new library used by clang since Mavericks, however it is possible to compile with the same clang (no need to install an old gcc) with the classical libstdc++ by using the option
-stdlib=libstdc++
For those who use Boost it is also possible to have boost libraries on mavericks that are compiled/linked with libstdc++ by downloading the source and using (when compiling it) instead of the classical
./b2
the following
./b2 cxxflags="-stdlib=libstdc++" linkflags="-stdlib=libstdc++"
For those using Cmake, you may want to add in the adequate cmake file something similar to:
find_library (LIBSTDCXX NAMES stdc++)
and
add_compile_options(-stdlib=libstdc++)
and
target_link_libraries(${PROJECT_NAME} ${LIBSTDCXX} ${YOUR_OTHER_LIBRARIES))