c++ - Boost Mountain Lion 链接

标签 c++ boost linker osx-mountain-lion

我正在尝试使用 Xcode V 4.4 链接到 Mountain Lion 上的 boost 1.50 我使用的是 gcc 4.7,所以不应该涉及 Xcode 的东西。 每次我尝试链接时,它都会给我这个:

/usr/local/bin/g++  -o bin/parse -Lbin `root-config --ldflags`    build/Bcf.o build/Bmf.o build/Boc.o build/EasyBMP.o build/Fei4.o build/Options.o build/RxChannel.o build/TxChannel.o -lboost_program_options -lboost_system -lboost_filesystem  -lboc `root-config --libs` build/parse.o
Undefined symbols for architecture x86_64:
  "start", referenced from:
     -u command line option
     (maybe you meant: boost::property_tree::string_path<std::basic_string<char,    std::char_traits<char>, std::allocator<char> >, boost::property_tree::id_translator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::cstart() const, boost::progress_display::restart(unsigned long) , boost::property_tree::json_parser::json_grammar<boost::property_tree::basic_ptree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::definition<boost::spirit::classic::scanner<__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, boost::spirit::classic::scanner_policies<boost::spirit::classic::skip_parser_iteration_policy<boost::spirit::classic::alternative<boost::spirit::classic::alternative<boost::spirit::classic::space_parser, boost::spirit::classic::confix_parser<boost::spirit::classic::strlit<char const*>, boost::spirit::classic::kleene_star<boost::spirit::classic::anychar_parser>, boost::spirit::classic::alternative<boost::spirit::classic::eol_parser, boost::spirit::classic::end_parser>, boost::spirit::classic::unary_parser_category, boost::spirit::classic::non_nested, boost::spirit::classic::is_lexeme> >, boost::spirit::classic::confix_parser<boost::spirit::classic::strlit<char const*>, boost::spirit::classic::kleene_star<boost::spirit::classic::anychar_parser>, boost::spirit::classic::strlit<char const*>, boost::spirit::classic::unary_parser_category, boost::spirit::classic::non_nested, boost::spirit::classic::is_lexeme> >, boost::spirit::classic::iteration_policy>, boost::spirit::classic::match_policy, boost::spirit::classic::action_policy> > >::start() const )
  "boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)", referenced from:
      boost::filesystem::exists(boost::filesystem::path const&) in Bcf.o
  "boost::filesystem::detail::file_size(boost::filesystem::path const&,boost::system::error_code*)", referenced from:
      boost::filesystem::file_size(boost::filesystem::path const&) in Bcf.o
ld: symbol(s) not found for architecture x86_64

Boost 是在更新后构建的,并且在之前有效

我尝试使用 macports 或自制软件构建它,但这破坏了一切......

最佳答案

这是我用来在 10.8 上构建 Boost 的方法(使用来自 App Store 的最新 Xcode),它绝对有效:

  1. 下载http://sourceforge.net/projects/boost/files/boost/1.50.0/boost_1_50_0.tar.bz2/download

  2. tar jxvf boost_1_50_0.tar.bz2 && cd "boost_1_50_0/"

  3. ./bootstrap.sh --prefix=/opt/boost-1.50

  4. (作为管理员用户)sudo ./b2 install

  5. sudo ln -snf boost-1.50/opt/boost

关于c++ - Boost Mountain Lion 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11691744/

相关文章:

c++ - 对于具有单个接受器的线程化 boost::asio 服务器,我们是否需要每个线程多个 io_service

c++ - 无法使用 boost.python 导入模块

c++ - mkoctfile 包含多个 C 和 C++ 源文件

c++ - 链接器如何知道哪个符号链接(symbolic link)到哪个符号?

c++ - 指针指向 vector 中的 NULL

c++ - 大型数组、std::vector 和堆栈溢出

c++ - 如何将字节数组转换为 boost::multiprecision::uint128_t?

c++ - 什么是静态库,什么是动态库,有什么区别,什么更好用,为什么?

c++ - 安装前检查目标目录的权限

具有 max_element 和迭代器的 c++ 函数 = 慢 3 倍