title: cpprestsdk: Undefined symbols for architecture x86_64
body: <p>I have visited all the other questions but from what I see none are my issue.</p>
  
  <p>Running OS X El Capitan 10.11.6 on MacBook Pro 16GB memory Intel Core I7 </p>
  
  <p>I have ran brew doctor as well but don't see any issues that would cause this issue. Below is my CMakeLists.txt file:</p>
  
  <pre><code>cmake_minimum_required(VERSION 3.0.0)
  project(WebClient VERSION 0.0.0)
  
  include(CheckCXXCompilerFlag)
  CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPLIER_SUPPORTS_CXX14)
  CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPLIER_SUPPORTS_CXX0X)
  if(COMPLIER_SUPPORTS_CXX14)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
  elseif(COMPILER_SUPPORTS_CXX0X)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
  else()
      message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++14 support.
                      Please use a different C++ compiler.")
  endif()
  
  FIND_PACKAGE( Boost 1.62 COMPONENTS program_options REQUIRED )
  INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
  
  set(OPT_CPPFLAGS "-I/usr/local/opt/openssl/include -I/usr/local/opt/libiconv/include")
  set(OPT_LDFLAGS "-v -lcpprest -lboost_system -L/usr/local/opt/openssl/lib -L/usr/local/opt/libiconv/lib -lcrypto -lssl")
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPT_CPPFLAGS} -v -g -O3 -fno-common -stdlib=libc++")
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPT_LDFLAGS}")
  
  add_executable(anyExecutable webclient.cpp)
  
  TARGET_LINK_LIBRARIES( anyExecutable ${Boost_LIBRARIES} )
  
  include(CPack)
  </code></pre>
  
  <p>I used brew to install cpprestsdk/2.8.0 which also includes boost/1.62.0 and openssl/1.0.2j and libiconv/1.14.  My code is from a tutorial on wiki cpprestsdk.</p>
  
  <pre><code>#include &lt;cpprest/http_client.h&gt;
  #include &lt;cpprest/filestream.h&gt;
  #include &lt;atomic&gt;
  
  using namespace utility;                    // Common utilities like string conversions
  using namespace web;                        // Common features like URIs.
  using namespace web::http;                  // Common HTTP functionality
  using namespace web::http::client;          // HTTP client features
  using namespace concurrency::streams;       // Asynchronous streams
  
  int main(int argc, char* argv[]) {
    auto fileStream = std::make_shared&lt;ostream&gt;();
  
    // Open stream to output file.
    pplx::task&lt;void&gt; requestTask = fstream::open_ostream( U("results.xml") ).then(
      [=](ostream outFile) {
          *fileStream = outFile;
  
          // Create http_client to send the request.
          http_client client(U("http://www.dictionaryapi.com/api/v1/references/"));
  
          // Build request URI and start the request.
          uri_builder builder(U("thesaurus/xml/"));
          builder.append_path(U("ranking"),true);
          builder.append_query(U("?key"), U("--------------------"));
          return client.request(methods::GET, builder.to_string());
    })
  
    // Handle response headers arriving.
    .then( [=](http_response response ) {
      printf("Received response status code:%u\n", response.status_code());
  
      // Write response body into the file.
      return response.body().read_to_end(fileStream-&gt;streambuf());
    })
  
    // Close the file stream.
    .then( [=](size_t ) {
      return fileStream-&gt;close();
    });
  
    // Wait for all the outstanding I/O to complete and handle any exceptions
    try {
      requestTask.wait();
    } catch (const std::exception &amp;e) {
      printf("Error exception:%s\n", e.what());
    }//try-catch BLOCK
  
    return 0;
  }//Main
  </code></pre>
  
  <p>To save some space only printing some the errors they all the same in can't be found:</p>
  
  <pre><code>    [vscode] Executing cmake command: cmake --build /Users/gumpy/git-repos/webapi/build --target all --config Debug -- -j 10
  [ 50%] Building CXX object CMakeFiles/anyExecutable.dir/webclient.cpp.o
  Apple LLVM version 8.0.0 (clang-800.0.38)
  Target: x86_64-apple-darwin15.6.0
  Thread model: posix
  InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
   "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.11.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -disable-free -disable-llvm-verifier -discard-value-names -main-file-name webclient.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 274.1 -v -dwarf-column-info -debug-info-kind=standalone -dwarf-version=2 -debugger-tuning=lldb -coverage-file /Users/gumpy/git-repos/webapi/build/CMakeFiles/anyExecutable.dir/webclient.cpp.o -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0 -I /usr/local/include -I /usr/local/opt/openssl/include -I /usr/local/opt/libiconv/include -stdlib=libc++ -O3 -std=c++14 -fdeprecated-macro -fdebug-compilation-dir /Users/gumpy/git-repos/webapi/build -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fblocks -fobjc-runtime=macosx-10.11.0 -fencode-extended-block-signature -fcxx-exceptions -fexceptions -fmax-type-align=16 -fno-common -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o CMakeFiles/anyExecutable.dir/webclient.cpp.o -x c++ /Users/gumpy/git-repos/webapi/webclient.cpp
  clang -cc1 version 8.0.0 (clang-800.0.38) default target x86_64-apple-darwin15.6.0
  ignoring nonexistent directory "/usr/include/c++/v1"
  ignoring duplicate directory "/usr/local/include"
    as it is a non-system directory that duplicates a system directory
  #include "..." search starts here:
  #include &lt;...&gt; search starts here:
   /usr/local/opt/openssl/include
   /usr/local/opt/libiconv/include
   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1
   /usr/local/include
   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/include
   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
   /usr/include
   /System/Library/Frameworks (framework directory)
   /Library/Frameworks (framework directory)
  End of search list.
  [100%] Linking CXX executable anyExecutable
  Apple LLVM version 8.0.0 (clang-800.0.38)
  Target: x86_64-apple-darwin15.6.0
  Thread model: posix
  InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
   "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.11.0 -o anyExecutable -L/usr/local/opt/openssl/lib -L/usr/local/opt/libiconv/lib -search_paths_first -headerpad_max_install_names -lcpprest -lboost_system -lcrypto -lssl CMakeFiles/anyExecutable.dir/webclient.cpp.o /usr/local/lib/libboost_program_options-mt.dylib -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a
  Undefined symbols for architecture x86_64:
    "boost::this_thread::interruption_point()", referenced from:
        boost::condition_variable::wait(boost::unique_lock&lt;boost::mutex&gt;&amp;) in webclient.cpp.o
        boost::condition_variable::do_wait_until(boost::unique_lock&lt;boost::mutex&gt;&amp;, timespec const&amp;) in webclient.cpp.o
    "boost::chrono::steady_clock::now()", referenced from:
        pplx::details::event_impl::wait(unsigned int) in webclient.cpp.o
    "boost::chrono::system_clock::now()", referenced from:
        pplx::details::event_impl::wait(unsigned int) in webclient.cpp.o
    "boost::detail::get_current_thread_data()", referenced from:
        boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*, _opaque_pthread_cond_t*) in webclient.cpp.o
  ld: symbol(s) not found for architecture x86_64
  </code></pre>