Я пытаюсь использовать библиотеку Boost CPP в Mac OS X 10.11.6. Я загрузил версию Boost версии 1.62 из официального репозитория SourceForge. Извлечен и построен в соответствии с документами: http://www.boost.org/doc/libs/1_62_0/more/getting_started/unix-variants.htmlC++, Mac OS X, Xcode 8: Compile Boost: установка цели развертывания в OS X 10.11
В принципе, я пошел в каталог и запускал сценарии «bootstrap.sh» и «b2».
Затем я создал простую программу на C++:
#include <iostream>
#include <string>
#include <boost/algorithm/string.hpp>
#include <boost/regex.hpp>
int main() {
std::string str1(" hello world! ");
boost::to_upper(str1);
std::cout << str1 << std::endl;
std::string s = " Boost Libraries ";
boost::regex expr{"\\s"};
std::string fmt{"_"};
std::cout << boost::regex_replace(s, expr, fmt) << '\n';
return 0;
}
И попытался построить его с помощью следующего CMake файла
cmake_minimum_required(VERSION 2.8.9)
set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++")
project(app_project)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME ON)
find_package(Boost 1.62.0 COMPONENTS regex)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(myapp main.cpp)
target_link_libraries(myapp ${Boost_LIBRARIES})
endif()
Когда я делаю программу я получаю следующие предупреждения:
ld: warning: object file (/Users/pritam/opt/boost_1_62_0/stage/lib/libboost_regex.a(instances.o)) was built for newer OSX version (10.12) than being linked (10.11)
ld: warning: object file (/Users/pritam/opt/boost_1_62_0/stage/lib/libboost_regex.a(regex.o)) was built for newer OSX version (10.12) than being linked (10.11)
ld: warning: object file (/Users/pritam/opt/boost_1_62_0/stage/lib/libboost_regex.a(regex_traits_defaults.o)) was built for newer OSX version (10.12) than being linked (10.11)
ld: warning: object file (/Users/pritam/opt/boost_1_62_0/stage/lib/libboost_regex.a(regex_raw_buffer.o)) was built for newer OSX version (10.12) than being linked (10.11)
ld: warning: object file (/Users/pritam/opt/boost_1_62_0/stage/lib/libboost_regex.a(cpp_regex_traits.o)) was built for newer OSX version (10.12) than being linked (10.11)
ld: warning: object file (/Users/pritam/opt/boost_1_62_0/stage/lib/libboost_regex.a(static_mutex.o)) was built for newer OSX version (10.12) than being linked (10.11)
У меня установлен XCode 8 на этой машине. Похоже, что при создании Boost он устанавливает цель развертывания в OS X 10.12.
Так что вопрос:
Как я могу установить цель развертывания для OS X 10.11 при построении подталкивания?