Я просмотрел другие подобные вопросы по этой теме, и я думаю, что есть что-то OSX-специфическое, которого я пропускаю.Как я могу статически связать библиотеку C++ с приложением C в OSX?
Я пытаюсь статически связать вилку Basho от LevelDB с моим приложением C (поскольку упакованные версии LevelDB будут использовать основную линию Google). Даже при использовании C++ компоновщика и добавление -lC++ в командной строку, я все еще получаю залит ошибкой об отсутствии C++ символов STL, такие как:
«станд :: строка :: _ Rep :: _ M_destroy (станд :: распределитель Const &)», ссылки из: _leveldb_open в libleveldb.a (со)
странная вещь, я знаю, что у меня есть C++ бит включен правильно, потому что я также ссылки на libsnappy, и, прежде чем я добавлена директива link, были неразрешенные символы libsnappy (очевидно), которые теперь очищены.
Насколько я знаю, у меня есть последняя версия xcode & остальная часть цепочки компилятора. libleveldb также скомпилирован с использованием той же инструментальной цепочки, что и мое обычное приложение. Вот командная строка Пытаюсь:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -g -Wl, -search_paths_first -Wl, -headerpad_max_install_names CMakeFiles/get_rid_status.dir/get_rid_status.co -o get_rid_status /usr/local/lib/libdb.a /usr/lib/libssl.dylib /usr/lib/libcrypto.dylib /usr/lib/libaprutil-1. dylib /usr/lib/libapr-1.dylib -lpthread -ldl -lm -lz LevelDB/libleveldb.a /usr/local/lib/libsnappy.dylib -lC++
Я связь с с ++ и добавление стандартной библиотеки C++ с -lC++ безрезультатно.
ОБНОВЛЕНИЕ Нашли правильный ответ, который можно найти ниже. Престижность пользователям, которые сказали мне правильный этикет, когда я изначально отвечал на мой собственный вопрос здесь.
Вы должны ответить на вопрос самостоятельно и принять его. – Zaxter
Вы можете оставить это сообщение, но удалите свое решение и отправьте его как * ответ *. –