Лязг и неопределенные символы при создании библиотеки

Я работаю над фреймворком C ++, и есть несколько проблем, когда я компилирую его в OSX с помощью Clang.

Во-первых, я использую некоторые другие библиотеки, такие как openssl, и clang жалуется, что некоторые символы не решаются при сборке библиотеки. Они не должны быть: эти библиотеки будут связаны с окончательным двоичным файлом, это не должно происходить на посреднике.

Кроме того, есть также несколько методов и переменных, которые должны быть реализованы в двоичном «клиенте» ... с GCC, без проблем, но Кланг также жалуется, что эти символы не могут быть решены во время компиляции.

Как так ? Что я должен делать ?

Вот мой CMakeLists.txt в случае, если это может быть полезно:

cmake_minimum_required(VERSION 2.8)

project(crails_project)

set(CMAKE_CXX_FLAGS "-std=c++0x -Wall -Wno-deprecated-declarations -pedantic -DASYNC_SERVER -DSERVER_DEBUG -DUSE_MONGODB_SESSION_STORE")

find_package(cppnetlib REQUIRED)

include_directories(include /usr/local/include ${CPPNETLIB_INCLUDE_DIRS} .)

file(GLOB crails_core
     src/*.cpp)

file(GLOB crails_sql
     src/sql/*.cpp)

file(GLOB crails_mongodb
     src/mongodb/*.cpp)

add_library(crails-core    SHARED ${crails_core})
add_library(crails-sql     SHARED ${crails_sql})
add_library(crails-mongodb SHARED ${crails_mongodb})

Это команда, которая вылетает:

/usr/bin/c++  -std=c++0x -Wall -Wno-deprecated-declarations -pedantic -DASYNC_SERVER -DSERVER_DEBUG -DUSE_MONGODB_SESSION_STORE -dynamiclib -Wl,-headerpad_max_install_names   -o libcrails-core.dylib -install_name /Users/michael/Personal/crails/build/libcrails-core.dylib CMakeFiles/crails-core.dir/src/assets.cpp.o CMakeFiles/crails-core.dir/src/cgi2params.cpp.o CMakeFiles/crails-core.dir/src/cipher.cpp.o [...]

И вот два вида ошибок, которые я получаю:

Неопределенные символы для архитектуры x86_64:

  "_BIO_ctrl", referenced from:
      Cipher::encode_base64(unsigned char*, unsigned int) const in cipher.cpp.o

И второй:

  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for boost::detail::thread_data_base", referenced from:
      boost::detail::thread_data_base::thread_data_base() in server.cpp.o

Ответы на вопрос(3)

Ваш ответ на вопрос