C++ 促进山狮连接

C++ 促进山狮连接,c++,boost,linker,osx-mountain-lion,C++,Boost,Linker,Osx Mountain Lion,我正在使用Xcode V4.4链接以在山狮上提升1.50 我使用的是GCC4.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/TxCha

我正在使用Xcode V4.4链接以在山狮上提升1.50 我使用的是GCC4.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
/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\u程序选项-lboost\u系统-lboost\u文件系统-lboc`root-config--libs`build/parse.o
架构x86_64的未定义符号:
“开始”,引用自:
-u命令行选项
(可能您的意思是:boost::property_tree::string_path::cstart()const,boost::progress_display::restart(无符号长),boost::property_tree::json_parser::json_grammar::definition::start()const)
“boost::filesystem::detail::status(boost::filesystem::path const&,boost::system::error_code*)”,引用自:
boost::filesystem::存在于Bcf.o中(boost::filesystem::path const&)
“boost::filesystem::detail::file_size(boost::filesystem::path const&,boost::system::error_code*)”,引用自:
Bcf.o中的boost::filesystem::file_大小(boost::filesystem::path const&)
ld:找不到架构x86_64的符号
Boost是在更新之后构建的,在更新之前可以正常工作


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

以下是我用来在10.8上构建Boost(使用App Store中最新的Xcode)的方法,它肯定有效:

  • 下载

  • tar jxvf boost_1_50_0.tar.bz2和&cd“boost_1_50_0/”

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

  • (作为管理员用户)
    sudo./b2安装

  • sudo ln-snf boost-1.50/opt/boost


  • 你确定第五步吗?这似乎与第3步相矛盾。我的boost文件以boost_1_50_0/boost和bootstrap.sh创建/opt/boost-1.50结尾。最后一步并不重要,它只是提供了一种使用无版本路径运行的方法。每当我编译包的新版本时,我都会更新这些链接以指向最新版本。